gpt4 book ai didi

sql - Oracle 查询排序

转载 作者:行者123 更新时间:2023-12-01 01:45:29 27 4
gpt4 key购买 nike

我的列中有值 [1_A CA 1_H 1_G CB AA AB HG] , 如果我使用 order by 子句,那么我得到的输出是 [1_A 1_G 1_H AA AB CA CB HG] .
到目前为止我已经尝试过这个

select distinct Plant_name from table_plants order by Plant_name

但我需要结果为 [AA AB CA CB HG 1_A 1_G 1_H] .

最佳答案

一种方法是您可以匹配并放置数字字符跟随字母表,然后按列排序。

SELECT *
FROM table_plants
ORDER BY CASE
WHEN REGEXP_LIKE(Plant_name , '[0-9]')
THEN 2
ELSE 1
END
,Plant_name;

Demo

如果要考虑以数字开头的数字字符,可以将其设为 '^[0-9]'

此外,如果您喜欢使用像 translate 这样的非正则表达式函数,如果所有数字列中都存在下划线,它应该可以解决像您这样的情况。
ORDER BY 
TRANSLATE(Plant_name,'x0123456789','x')

关于sql - Oracle 查询排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49933921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com