在t-SQL中将值与NULL比较

ahm*_*md0 5 sql t-sql sql-server null

我很好奇在t-SQL中将NULL与值进行比较是否合法?

例如,如果我有:

WITH ctx AS(SELECT 123 AS n0, NULL AS n1)
SELECT n0 FROM ctx
WHERE ctx.n1 < 130
Run Code Online (Sandbox Code Playgroud)

在这种情况下,WHERE子句始终被评估为FALSE。我可以依靠吗?

mr_*_*air 5

您不能将 NULL 与任何其他值进行比较,它会导致'UNKNOWN'.

来自msdn 源

NULL 值表示该值未知。NULL 值不同于空值或零值。没有两个空值是相等的。两个空值之间或 NULL 与任何其他值之间的比较返回未知,因为每个 NULL 的值都是未知的。