今天看啥
热点:

sql查询结果集根据指定条件排序的方法,sql查询结果


oracle认为 null 最大。

升序排列,默认情况下,null值排后面。

降序排序,默认情况下,null值排前面。

有几种办法改变这种情况:

(1)用 nvl 函数或decode 函数 将null转换为一特定值

(2)用case语法将null转换为一特定值(oracle9i以后版本支持。和sqlserver类似):
 1.当值为某个值的时候,指定排序的时候的位置
  select * from (
  select 1 t from dual
  union all
  select 2 t  from dual
  union all
  select 3 t from dual
  union all
  select 4 t from dual
  ) a  order by case when a.t=2 then 1 else 0 end
 2.当值为某个值的时候,排序的时候,永远在最后
  select * from (
  select 1 t from dual
  union all
  select 2 t  from dual
  union all
  select 3 t from dual
  union all
  select 4 t from dual
  ) a  order by case when a.t=2 then null else 0 end asc  nulls last

结果:

(3)使用nulls first 或者nulls last 语法。

这是oracle专门用来null值排序的语法。

nulls first :将null排在最前面。如:select * from mytb order by mycol nulls first

null last :将null排在最后面。如:select * from mytb order by mycol nulls last

如果要想让含有null的列按照自己的意愿进行排序,可做如上处理。

www.bkjia.comtruehttp://www.bkjia.com/oracle/1001228.htmlTechArticlesql查询结果集根据指定条件排序的方法,sql查询结果 oracle认为 null 最大。 升序排列,默认情况下,null值排后面。 降序排序,默认情况下,...

相关文章

    暂无相关文章
相关搜索:

帮客评论

视觉看点