ORACLE中null的排序问题

简介: ORACLE中null的排序问题

在平时的业务处理中,经常遇到要对业务数据进行排序,并且要对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:使用其它函数,如:decodecase
方法3:nulls firstnulls 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

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


相关文章
|
11月前
orderBy排序,null在最后
orderBy排序,null在最后
204 0
|
SQL Oracle 关系型数据库
解决:Oracle数据库中Left join on 后面为null时匹配不上
解决:Oracle数据库中Left join on 后面为null时匹配不上
304 0
|
关系型数据库 MySQL
Mysql排序字段为NULL如何排序
讲述工作中遇到的Mysql排序字段为NULL时如何排序
对List进行排序,值为null的排到最后
对List进行排序,值为null的排到最后
|
6月前
|
Oracle 关系型数据库 索引
Oracle查询优化-按照子串排序
【1月更文挑战第2天】【1月更文挑战第4篇】有一种速查法就是按照一个字段的某一部分值的顺序记录,这样在查找的时候就可以快速缩小查询范围,例如按电话号码尾号查询。
52 1
|
6月前
|
Oracle 关系型数据库
Oracle查询优化-根据条件取不同列的值排序
【1月更文挑战第3天】【1月更文挑战第9篇】有时排序的要求会比较复杂,比如,领导对工资在 1000 到 2000元之间的员工更感兴趣,于是要求工资在这个范围的员工要排在前面,以便优先查看。这种情况就不仅仅使用ORDER BY了。
168 0
|
6月前
|
Oracle 关系型数据库 数据库
Oracle查询优化-处理排序空值
【1月更文挑战第3天】【1月更文挑战第8篇】在处理Oracle查询结果排序时,如果涉及到空值(null),Oracle提供了一些特定的语法来帮助您控制排序的顺序。
72 0
|
6月前
|
SQL Oracle 关系型数据库
Oracle查询优化-简单排序
【1月更文挑战第1天】【1月更文挑战第3篇】最近在工作中发现Oracle排序对性能影响很大,数据排序被广泛应用于许多SQL查询语句的优化过程中。
96 0
|
6月前
|
SQL JSON Java
Java【问题记录 02】对象封装+固定排序+list All elements are null引起的异常处理+Missing artifact com.sun:tools:jar:1.8.0
Java【问题记录 02】对象封装+固定排序+list All elements are null引起的异常处理+Missing artifact com.sun:tools:jar:1.8.0
76 0
|
SQL Oracle 关系型数据库
oracle数据库中对汉字跟英文字母混合排序
oracle数据库中对汉字跟英文字母混合排序
92 0

推荐镜像

更多