我想知道如何对varchar值进行升序或降序排序。
这是我的字段和值Filling_s_no varchar2;
表:
Id Filling_s_no name
1 1.1.1 X
1 1.1.10 X
1 1.1.5 X
1 1.1.2 X
1 1.2.1 X
1 1.2.0 X现在,我想像这样对我的表进行排序
Id Filling_s_no name
1 1.1.1 X
1 1.1.2 X
1 1.1.5 X
1 1.1.10 X
1 1.2.0 X
1 1.2.1 X我尝试使用此查询,但无法获得解决方案。
select *
from TCD_EX_Tab
where id=1
order by Filling_s_no ASC;发布于 2015-06-25 00:52:07
以下查询将执行您所需的操作:
SELECT ID, FILLING_S_NO, NAME
FROM TCD_EX_TAB
where id=1
order BY TO_NUMBER(REGEXP_SUBSTR(filling_s_no, '[0-9]+', 1, 1)),
TO_NUMBER(REGEXP_SUBSTR(filling_s_no, '[0-9]+', 1, 2)),
TO_NUMBER(REGEXP_SUBSTR(filling_s_no, '[0-9]+', 1, 3));要解决的问题是,需要将文本字符串的组成部分转换为数字,以便按您希望的方式进行排序。我们使用正则表达式来挑选字符串中的每个子元素,然后将这些子元素转换为NUMBER类型,以便进行排序。
祝你好运。
https://stackoverflow.com/questions/31031828
复制相似问题