使用正确的判断条件
像 column = NULL 这样的条件并不会进行普通的真值比较。SQL 使用三值逻辑,涉及 NULL 的比较结果为未知,通常会被 WHERE 子句排除。
使用 IS NULL 查找字段缺失的行,使用 IS NOT NULL 查找字段有值的行。如果参数可能为 NULL,请有意识地构造条件,不要指望相等判断自动覆盖两种情况。
明确缺失数据的处理规则
请决定缺失值应排除、替换为默认值,还是单独报告。COALESCE 可以为显示或计算提供回退值,但该默认值必须符合字段含义。
测试包含 NULL、空字符串和普通值的筛选;这些情况不能互换。还要检查聚合函数,因为许多 SQL 聚合会忽略 NULL,从而影响计数或平均值。