首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在oracle中对varchar值进行排序

问如何在oracle中对varchar值进行排序
EN

Stack Overflow用户
提问于 2015-06-25 00:18:40
回答 1查看 398关注 0票数 0

我想知道如何对varchar值进行升序或降序排序。

这是我的字段和值Filling_s_no varchar2;

表:

代码语言:javascript
复制
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

现在,我想像这样对我的表进行排序

代码语言:javascript
复制
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

我尝试使用此查询,但无法获得解决方案。

代码语言:javascript
复制
select * 
  from TCD_EX_Tab 
 where id=1 
 order by Filling_s_no ASC;
EN

回答 1

Stack Overflow用户

发布于 2015-06-25 00:52:07

以下查询将执行您所需的操作:

代码语言:javascript
复制
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类型,以便进行排序。

祝你好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31031828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档