oracle中数字排序问题

来源:互联网 发布:百度云软件打不开 编辑:程序博客网 时间:2024/06/01 08:34


oracle 中有若需对一个字段(假设设定为:user_no)进行排序,而其值为,1,2,3.,5,6,9,10,12,K3,K1。


我们直接使用 order by   user_no ,发现得到的排序顺序为 :1,10,12,2,5,6,9,K1,K3。


但实际上我们要的排序顺序为:1,2,5,6,9,,10,12,K1,K3  ,得到数据与我们想要的数据不一样。


这时候我们需要用accii 值,去做处理,得到我们想要的数据。语句如下:


order by lpad(decode(sign(ascii(SUBSTR(user_no,-1))-57),1,user_no,user_no||'A'),5,'0');



0 0