数据库demo表
默认会以id进行排序,现在想让-1排在最后,思路:只使用asc和desc肯定不行,这就需要考虑到oracle自带的函数来对num字段的值进行处理了
方法一
使用decode函数处理,让-1变大,这样asc升序的时候自动就排在最后一位了
select t.* from demo t order by decode(t.num,-1,99,t.num) asc;
方法二
使用case … when … 处理,当num=-1时,让其变大,与方法一同理
select t.* from demo t order by case t.num when -1 then 99 else to_number(nvl(t.num,0)) end asc;