如题所述
因为一般情况下将任何值(包括NULL本身)与NULL做比较的时候,都会返回UnKnown。而在查询表达式中(比如where与having中),UnKnown会视为false。所以select * from 表 where 字段=null查不到正确的结果。
在sql中要查询某列值为null的所有结果集时,查询条件应该这样写:
select * from 表 where 字段 is null
扩展资料:
注意事项
并不是在所有场情下UnKnown都会视为false来处理,在check约束中,UnKnown就会视为true来处理。这就是为什么设置某个字段的值必须大于等于0的情况下,还可以往该字段中插入Null值,那是因为在check约束中null>=0的逻辑结果UnKnown会被当作true来处理。
需要注意的是,在分组子句与排序子句中,sql视null是相等的,即:
1、GROUP BY会把所有NULL值分到一组。
2、ORDER BY会把所有NULL值排列在一起。
温馨提示:答案为网友推荐,仅供参考