oracle中,在使用 not like 进行模糊查询,想要筛选出不符合某个pattern的数据时,是无法筛选出值为 null 的数据的。这是因为oracle中 null 表示未知,无法和任何其他值相比或相似。如果忽略了这一点,则常常会获得不完整的数据。
如下面的例子,筛选出的结果中,不会包含名字为空的数据,它隐含了一个条件,就是名字不为空
select
*
from
student
where
name not like '郑%'
如果要包括名字为空的数据,可以这样改写:
select
*
from
student
where
name is null or name not like '郑%'
或者这样:
select
*
from
student
where
nvl(name, 0) not like '郑%'
参考文献
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。