等于1的意思是什么-ISNULL(something,1)= 1

时间:2018-11-15 09:17:16

标签: sql sql-server

我有以下代码。

.....
.....
WHERE 0 = 0 
AND Isnull(something, 1) = 1
....
....

我知道notull函数会查看某些东西,如果它为null,则将其替换为1。但是 = 1 的确切含义是什么?

我正在使用Microsoft SQL Server,代码为Coldfusion。

4 个答案:

答案 0 :(得分:7)

您的查询Isnull(something, 1) = 1表示要返回somethingnull仅具有1值的WHERE (something IS NULL OR something = 1)

我将其重写为使其成为 Sargable

hg log

答案 1 :(得分:3)

这等效于:

WHERE something IS NULL or something  = 1;

因为0=0始终是true

答案 2 :(得分:3)

如果它为null,它将用1代替某物的值(列名用于行),然后检查输出是否为1。基本上,它正在检查该值是否为空。

答案 3 :(得分:2)

其核心是,如果经过null检查的值(某物)为null或恰好为1,则该表达式的值为true。

如果某些值等于null,则ISNULL(p1,p2)的结果为p2的值。 如果某物等于null以外的任何东西,则其求值为p1的值。 然后该表达式将根据ISNULL的结果求值

p1     p2  ISNULL-result  expression  result
null   1   1              = 1         true
1      1   1              = 1         true
2      1   2              = 1         false
1      1   1              = 2         false
null   2   2              = 2         true