zoukankan      html  css  js  c++  java
  • 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的列按照自己的意愿进行排序,可做如上处理。

  • 相关阅读:
    大型网站优化-memcache技术
    MySQL常见注意事项及优化
    网站优化—mysql explain执行计划
    网站优化—MySQL优化
    网站优化—页面静态化技术
    防盗链案例
    伪静态的实现
    (19) PHP 随笔---LAMP 系统常用命令
    (17) PHP 随笔---LAMP vi编辑器
    (18) PHP 随笔---LAMP 权限操作
  • 原文地址:https://www.cnblogs.com/qadada/p/4501150.html
Copyright © 2011-2022 走看看