Oracle中的不等于条件的注意点

假设:

1
SELECT t.*, t.rowid FROM user t

这个SQL查询出来的结果有16条,其中字段 user_id 值为空的数据 10 条,不为空的6条,

那么:

1
SELECT t.*, t.rowid FROM user t WHERE t.user_id <> '123'

如果期望查询出user_id = ‘123’以外的数据,这个sql执行之后,会比期望的数据少10条(即:10条 user_id 值为空的数据被过滤掉)

正确写法:

1
SELECT t.*, t.rowid FROM user t WHERE t.user_id <> '123' or t.user_id is null

总结:

null只能通过is null或者is not null来判断,其它操作符与null操作都是false


Oracle中的不等于条件的注意点
https://binbiubiu.github.io/20191210120000/
作者
Binbiubiu
发布于
2019年12月10日