簡體   English   中英

Oracle sql按字符順序排序

[英]Oracle sql order by with character in order

美好的一天,也許有人可以幫助我,我想在oracle sql上獲取n select輸出,但是當我通過它訂購時不正確。

code_order
1.
2.
2.1
3.
4.2
10.1
10.0
21.
21.1
23.
31.

需要將其排序為數字,並且所有值中都有一個句號.

有任何想法嗎??

感謝,但是我看到一些值可以包含非數字值,例如C,B等。

                    1. 7C。 40. 50. 51. 6。
表大綱:

code_order為varchar2

使用order by to_number(code_order)

    with
    val as
    (
      SELECT '1.' as c FROM dual
      union all
      SELECT '2.' as c FROM dual
      union all
      SELECT '3.' as c FROM dual
      union all
      SELECT '2.1' as c FROM dual
      union all
      SELECT '4.2' as c FROM dual
      union all
      SELECT '10.1' as c FROM dual
      union all
      SELECT '21.' as c FROM dual
      union all
      SELECT '10.0' as c FROM dual
      union all
      SELECT '21.1' as c FROM dual
      union all
      SELECT '23.' as c FROM dual
      union all
      SELECT '31.' as c FROM dual
    )
SELECT c FROM val
order by to_number(regexp_replace(c, '^(\d+)\..*$', '\1'))
    ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM