sqlserver 和Oracle中 order by(排序)的区别
发布时间:2020-12-12 13:31:16  所属栏目:MsSql教程  来源:网络整理 
            导读:【sqlserver】: sqlserver 认为 null 最
                
                
                
            | 【sqlserver】: 
 
  sqlserver 认为 null 最小。 
 
  升序排列:null 值默认排在最前。 
 
  要想排后面,则:order by case when col is null then 1 else 0 end,col 
 
  降序排列:null 值默认排在最后。 
 
  要想排在前面,则:order ? by case when col is null then 0 else 1 end,col desc 
 
  【oracle】: 
 
  oracle认为 null 最大。 
 
  升序排列,默认情况下,null值排后面。 
 
  降序排序,默认情况下,null值排前面。 
 
  ? 
 
  有几种办法改变这种情况: 
 
  (1)用 nvl 函数或decode 函数 将null转换为一特定值 
 
  (2)用case语法将null转换为一特定值(oracle9i以后版本支持。和sqlserver类似): 
 
  order by (case mycol when null then ’北京漂客’ ? ? else ? mycol ? end) 
 
  ? www.2cto.com ? 
 
  (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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 
