解決oracle語句中 含數字的字符串按數字排序問題

例如:

普通排序利用:order by 字段名 ASC

但是遇到有中文而且類型是varchar類型的結果就是這樣

政採代(甲)字第0298號

政採代(甲)字第0421號

政採代(甲)字第1098號

政採代(甲)字第1267號(延續)

政採代(甲)字第1179號(延續)

但是我們要的結果應該是這樣:

政採代(甲)字第0298號

政採代(甲)字第0421號

政採代(甲)字第1098號

政採代(甲)字第1179號(延續)

政採代(甲)字第1267號(延續)

 

解決辦法:
利用oracle函數及正則表達式進行排序

order by to_number(regexp_substr(字段名,'[0-9]*[0-9]',1))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章