2014-09-26 51 views
0

所以我想那種有看起來像這樣的數據的字段數字字段進行排序:使用蟾蜍9.5甲骨文如何有幾許

"Order Number" 
1-123456 
1-223456 
1-33356 

order by "Order Number" desc 

這樣做的目的是從最順序號排序最近到最老。每個訂單號都以1-開頭,從未有2-或3-等......但問題是在上面的例子中,它顯示1-33356是最新的。但是,如果您可以使用1-去除並且正在說話的值來拍攝訂單號碼,則33,356是< 123,456。我怎麼能得到這個基於1位數字的總值進行排序 - ?

感謝提前的幫助。我喜歡這個網站!

+0

使用字符串值來表示年代史是糟糕的設計。你需要做的是零填充連字符後的數字,以便將多個位置放在最大的「數字」中,然後重新組合這些數據塊,如果2-000000001表示比1-938394383更高的值 – Tim 2014-09-26 16:04:57

回答

1

問題是你想要一個字符串內容的數字順序(這將按照字典順序排列)。

您應該提取字符串的數字部分並將其轉換爲數字以進行排序。 像這樣的東西

select * from yourtable 
order by to_number(substring(ordernumber, 3)); 
+0

做到了。非常感謝!!!! – user3486773 2014-09-26 16:14:01