当前位置:网站首页>Oracle 限制时将空值排除

Oracle 限制时将空值排除

2022-08-09 07:26:00 白露-

1.Oracle特性

Oracle有个特性,就是在限制时,会将空值也排除在外:
例如:

select '小黑'name,'2'class from dual
union all select '小白'name,'0'class from dual
union all select '小红'name,'1'class from dual
union all select '小绿'name,'4'class from dual
union all select null name,'5' class from dual

在这里插入图片描述

如果排除小黑,那么会得到这样的数据:

select * from (select '小黑'name,'2'class from dual
union all select '小白'name,'0'class from dual
union all select '小红'name,'1'class from dual
union all select '小绿'name,'4'class from dual
union all select null name,'5' class from dual)where name<>'小黑'

在这里插入图片描述
数据库在排除小黑这条数据的同时,也将class为5的数据也排除掉了

2.解决

问题也很好解决,只需要在限制后面添加or name is null,即可:

select * from (select '小黑'name,'2'class from dual
union all select '小白'name,'0'class from dual
union all select '小红'name,'1'class from dual
union all select '小绿'name,'4'class from dual
union all select null name,'5' class from dual)where name<>'小黑' or name is null

在这里插入图片描述

原网站

版权声明
本文为[白露-]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_56227168/article/details/126181828