我有一个表,其中有一个名为 status 的列,其类型为smallint,并接受 null。 SQL Server 2000。
我的数据在该字段中大部分包含 2,但也包含 0 和 null。
当我这样做的时候
select *
from table
where status <> 2
我没有获得所有正确的记录(其中状态为 null 或 0)。知道为什么会发生这种情况以及如何纠正吗? <> 不应该给我除 2 之外的所有内容吗?
最佳答案
NULL 测试不匹配任何算术比较。
使用
where status <> 2 OR status is null
关于sql - 在where子句中比较smallint时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5834578/