Oracle DB版本列排序

时间:2018-02-23 10:39:55

标签: sql oracle

我的Version_ref_no列的值类似于

    4.0.0.4
    4.0.0.2
    4.0.0.1
    4.0.0.8
    4.0.0.14 
    4.0.0.23 
    4.0.1.0

Oracle中是否有任何方法可以对其进行排序,以便OP应该

   4.0.1.0
   4.0.0.23
   4.0.0.14
   4.0.0.8 
   4.0.0.4 
   4.0.0.2 
   4.0.0.1

1 个答案:

答案 0 :(得分:1)

 SELECT * FROM YOUR_TABLE
 ORDER BY 
 to_number(regexp_substr(COL1, '[^.]+', 1, 1)) DESC NULLS FIRST,
 to_number(regexp_substr(COL1, '[^.]+', 1, 2)) DESC NULLS FIRST ,
 to_number(regexp_substr(COL1, '[^.]+', 1, 3)) DESC NULLS FIRST ,
 to_number(regexp_substr(COL1, '[^.]+', 1, 4)) DESC NULLS FIRST ;