oracle中對數字加漢字的排序以及REGEXP_SUBSTR介紹,oracleregexpsubstr

來源:互聯網
上載者:User

oracle中對數字加漢字的排序以及REGEXP_SUBSTR介紹,oracleregexpsubstr

需求:有一列NAME, varchar2類型,內容如下

以上就是已經按order by name進行排序的,但不是我們想要的結果

現在需要只按數字進行排序


第一步:抽取數字
由於數字有是一位的有是兩位的 所以不好用substr進行截取

我們可以使用REGEXP_SUBSTR函數,使用Regex從字串中抽取子串。

REGEXP_SUBSTR(name, '[0-9]+')

第二步、將varchar類型的數字轉換為int類型的數字

cast(yourcol as int)
可參考:sql中,把varchar類型轉換為int型,然後進行排序


所以結合起來

select * from test order by cast(REGEXP_SUBSTR(name, '[0-9]+') as int);
就可以按數字進行排序了



作者:itmyhome


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.