Oracle中null值的处理
-
null值不参与运算,与任何数加减乘除都是null
-
判断的时候需要显示的声明,is null or is not null,当需要查询哪些行不存在某个特定的值时一定要考虑到存在null的情况,一定要显式声明,即 or is null,否则这空值null的记录不会包括在结果集中.
-
全集查询时使用:
count(1)、count(*)则会包含null。
使用某个具体的字段就不会包含null,count(列)、count(distinct 列)不包含null。 -
在排序order by 后面使用nulls first 或nulls last
Nulls first和nulls last是Oracle Order by支持的语法
如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)
如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)
null默认值是最大值。
//null值将排在最前面,如果不用nulls first,null就会被排在最前面,因为默认是最大值
select * from t_table t order by t.id desc nulls first;