1、select语句中的null问题:
(1)包含null的表示式都为null
(2)null永远不等于null
(3)如果集合中含有null,不能使用not in,但可以使用in
not in相当于<>all
举例解释:a not in(3,4,null)相当于a!=3 and a!=4 and a!=null,a!=null永远为false
(4)null值在order by中显示:oracle中null最大
把null放到最后:select * from emp order by comm nulls last;
(5)组函数会自动滤空,可以嵌套滤空函数来屏蔽
如:avg()函数不会把null当做一条记录

2、oracle的滤空函数(通用函数):
nvl(a,b):表示a不为null返回nvl,a为null返回b
nvl2:增强的nvl

3、oracle中判空 用is关键字:
select * from emp where comm = null;(错误)
select * from emp where comm is null;(正确)
博客主要围绕Oracle中SELECT语句的NULL问题展开。介绍了包含NULL的表达式特性、NULL比较规则、集合中含NULL时IN和NOT IN的使用差异,还提及NULL在ORDER BY中的显示情况、组函数对NULL的处理。此外,讲解了滤空函数NVL、NVL2,以及判空要用IS关键字。
&spm=1001.2101.3001.5002&articleId=90672461&d=1&t=3&u=260e80d8e52c4df897b4d3a74ad48bf1)
2386

被折叠的 条评论
为什么被折叠?



