[英]ORACLE SQL - Determine, MAX value, when values could be alphanumeric-only or digits-only, and letters should be greater than digits
當值可以是僅字母數字或僅數字時,我想確定Oracle中的最大值。 說:
當我使用Oracle MAX函數時,例如:
從TABLE_001 T中選擇SELECT MAX(T.COLUMN_002);
現在返回我:
因為:
我想要的是一個函數,對於該函數,字母將大於數字,例如:
所以下面的示例將返回我不是BA,而是:
將原件改寫為:
select t.COLUMN_002
from (select t.COLUMN_002
from TABLE_001 t
order by t.COLUMN_002
) t
where rownum = 1;
使用此版本,您可以更改order by
並獲得所需的任何值:
select t.COLUMN_002
from (select t.COLUMN_002
from TABLE_001 t
order by (case when substr(t.COLUMN_002, 1, 1) between '0' and '9' then 1 else 2 end),
t.COLUMN_002
) t
where rownum = 1;
如果您不喜歡子查詢,也可以為此使用KEEP
構造。
select string from
(
select rank () over (partition by case order by string desc) rnk,string,case
from
(select case when substr(string,1,1) between '0' and '9' then 1 else 2 end case ,string
from ex_b
order by string desc) tbl
) tbl_1
where rnk = 1
and case = 1
This query will give the desired result
Regards,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.