[英]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.