zoukankan      html  css  js  c++  java
  • 问题:oracle 排序 null值放在最后;结果: ORACLE中null的排序问题

    ORACLE中null的排序问题

    关键字: oracle nulls

    问题描述:
        在平时的业务处理中,经常遇到要对业务数据进行排序,并且要对null值也做相应的排序。在Oracle中,进行Order by排序时缺省认为null是最大值,所以如果是ASC升序则被排在最后,而DESC降序则排在最前。有的时候我们需要在降序排列时,同时要将null的 数据排到最后,应该如何处理。  

    问题处理:
    方法1:使用nvl函数
    语法:Nvl(expr1, expr2)
        若EXPR1是NULL,則返回EXPR2,否則返回EXPR1.
        SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROM TABLE1;

        认识了NVL的语法,就可以在排序中使用,如: ORDER BY NVL(FIELD, '0')

    方法2:使用其它函数,如decode,case。

    方法3:nulls first或nulls last
    语法:
        Nulls first:表示null值的记录将排在最前
        Nulls last:表示null值的记录将排在最后
        --null值始终放在最前面
        select * from ac01 order by aac001 asc nulls first
        --null值始终放在最后面
        select * from ac01 order by aac001 desc nulls last

        经过上述方法的比较,第三种方法比较方便。

  • 相关阅读:
    python学习永久存储和异常处理
    python学习os文件系统模块
    python学习文件
    python学习集合
    python学习字典
    python学习递归
    python学习函数
    python学习序列
    js加入收藏
    判断dataset和datareader中是否存在某列
  • 原文地址:https://www.cnblogs.com/longphui/p/4990634.html
Copyright © 2011-2022 走看看