Oracle 數據庫中 字符型字段 按數字排序

由於需要維護表裏面的值,id主鍵是字符串型,保存的都是數字,每次都要看好久,才知道新增id,用哪個數字;

遇到了一個主鍵排序的問題。字符型的主鍵,保存的都是數字,數據導過來以後發現數據排序都是亂的,就想着按數字規則排序。

但發現to_number總是報錯,就想着裏面應該是有字符存在。後來使用了正則關係式,問題解決。

以下是正則關係式的兩種用法,記錄下來:

方法一:

select * from nc_dept  order by  to_number(regexp_substr(id,'[0-9]*[0-9]',1));

 

方法二:

select * from nc_dept order by to_number(translate(id, '0123456789.' || id, '0123456789.')) asc nulls last;

 

 

 

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