问题
使用 field <> 9 查询时,无法查询出 field 为 NULL 的记录。
原因
NULL 没有值,因此无法使用运算符进行比较。
换句话说,任何值都不能等于(或不等于)NULL,因为 NULL 没有值。
因此,SQL 有特殊的 IS NULL 和 IS NOT NULL 来处理 NULL。
解决方案
field is null or field <> 9
nvl(field, 0) <> 9
使用 field <> 9 查询时,无法查询出 field 为 NULL 的记录。
NULL 没有值,因此无法使用运算符进行比较。
换句话说,任何值都不能等于(或不等于)NULL,因为 NULL 没有值。
因此,SQL 有特殊的 IS NULL 和 IS NOT NULL 来处理 NULL。
field is null or field <> 9
nvl(field, 0) <> 9
Oracle 字段值为null时,作为查询条件时,应该注意的问题
https://www.explorexd.com/archives/df2a50b9-0536-4796-9de4-cd0d00fe819f
评论