1. 程式人生 > >oracle中字元型欄位按數字排序

oracle中字元型欄位按數字排序

今天在轉換資料時,遇到了一個主鍵排序的問題。字元型的主鍵,儲存的都是數字,資料導過來以後發現數據排序都是亂的,就想著按數字規則排序。

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

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

select * from xtyhxx order by to_number(translate(yhid, '0123456789.' || yhid, '0123456789.')) asc nulls last


select * from xtyhxx  order by  to_number(regexp_substr(yhid,'[0-9]*[0-9]',1))