我有一张这样的 table

ID   Name    IsDeleted
1    Yogesh  Null
2    Goldy   1

现在当我运行这个查询
select  *
from tableName
where IsDeleted <> 1

我应该得到 ID 1 记录,但我没有得到它,

但是当我运行这个
select  *
from tableName
where IsDeleted is null

我得到 ID 1 记录,

为什么我面临这种行为?NULL <> 1 不是 SQL 中的真实语句吗??
IsDeleted 是带有 bitAllow Null true 类型字段

最佳答案

select * from table
where COALESCE(IsDeleted, 0) <> 1
-- or ISNULL instead of COALESCE.
--ISNULL seems to be better in subqueries, but it's not ANSI SQL.

或者
select * from table
where IsDeleted <> 1 or IsDeleted IS NULL

关于sql - SQL 中的 <> 运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11329073/

10-13 00:57