Where子句检查参数值返回一个字段为NULL

时间:2017-08-21 15:10:03

标签: tsql

我有一个这样的where子句:

.text-center

@IsCurrentRequest是一个位参数。我想检查@IsCurrentRequest = 1然后返回m.Date_6是NULL否则返回1.我知道这不起作用,因为m.Date_6 = NULL不起作用。我该如何解决?谢谢!

2 个答案:

答案 0 :(得分:2)

我不确定我是否正确理解了您的问题,但可能是您正在寻找的这种情况(不使用CASE)?

WHERE @isCurrentRequest=1 AND m.date_6 IS NULL OR @isCurrentRequest=0

无论如何,当检查值是否为NULL时,您不能使用column_name = NULL,但是您应该使用column_name IS NULL(因为NULL是“特定”值)

答案 1 :(得分:1)

如果 ws://localhost:9222/devtools/page/4477eb1d-b1e2-4163-8250-0b3f93c0ea14 运算符的任何操作数为=,则NULL运算符将返回NULL,因此您的代码将无法按预期运行。

尝试这样的事情:

WHERE IIF( @IsCurrentRequest = 1, IIF( m.Date_6 IS NULL, 1, 0 ), 1)