zoukankan      html  css  js  c++  java
  • sql 如何优先显示不为空的字段 并进行排序

    【Oracle 结论】 
    order by colum asc 时,null默认被放在最后
    order by colum desc 时,null默认被放在最前
    nulls first 时,强制null放在最前,不为null的按声明顺序[asc|desc]进行排序
    nulls last 时,强制null放在最后,不为null的按声明顺序[asc|desc]进行排序 
    【MySql 结论】
    order by colum asc 时,null默认被放在最前
    order by colum desc 时,null默认被放在最后
    ORDER BY IF(ISNULL(update_date),0,1) null被强制放在最前,不为null的按声明顺序[asc|desc]进行排序
    ORDER BY IF(ISNULL(update_date),1,0) null被强制放在最后,不为null的按声明顺序[asc|desc]进行排序

    注:以上结果是在oracle11g及mysql5下的测试结果。

    因此当我们在order by时,为了强制说明对于null的排序顺序就必须使用到:

    针对【oracle】我们就需要使用以下语法:

    order by order_col [asc|desc] nulls [first|last] 

    而针对【mysql】我们则需要使用以下语法:

    order by IF(ISNULL(my_field),1,0),my_field; 

    转自:http://blog.csdn.net/oxcow/article/details/6554168

  • 相关阅读:
    SQL补充
    SQL练习题
    HDU 2907
    Codeforces 814D
    Codeforces 814C
    Codeforces 1004D
    Codeforces 1004E
    CodeForces 909F
    CodeForces 909E
    CodeForces 909D
  • 原文地址:https://www.cnblogs.com/5icuke/p/8021964.html
Copyright © 2011-2022 走看看