Tsql Where子句检查参数值返回的字段为空

Tsql Where子句检查参数值返回的字段为空,tsql,Tsql,我有这样一个where子句: Where m.Date_6 = Case When @IsCurrentRequest = 1 Then NULL Else m.Date_6 End WHERE IIF( @IsCurrentRequest = 1, IIF( m.Date_6 IS NULL, 1, 0 ), 1) @IsCurrentRequest是位参数。我想检查@IsCurrentRequest=1,然后返回m.Date_6为空,否则返回1。我知道这不起作用,因为m.Date_

我有这样一个where子句:

Where m.Date_6 = Case  When @IsCurrentRequest = 1 Then  NULL Else  m.Date_6 End
WHERE IIF( @IsCurrentRequest = 1, IIF( m.Date_6 IS NULL, 1, 0 ), 1)

@IsCurrentRequest是位参数。我想检查@IsCurrentRequest=1,然后返回m.Date_6为空,否则返回1。我知道这不起作用,因为m.Date_6=NULL不起作用。我怎么修理?谢谢

如果其任何操作数为
NULL
,则
=
运算符将返回
NULL
,因此代码将无法正常工作

试着这样做:

Where m.Date_6 = Case  When @IsCurrentRequest = 1 Then  NULL Else  m.Date_6 End
WHERE IIF( @IsCurrentRequest = 1, IIF( m.Date_6 IS NULL, 1, 0 ), 1)

如果
=
运算符的任何操作数为
NULL
,则该运算符将返回
NULL
,因此代码将无法正常工作

试着这样做:

Where m.Date_6 = Case  When @IsCurrentRequest = 1 Then  NULL Else  m.Date_6 End
WHERE IIF( @IsCurrentRequest = 1, IIF( m.Date_6 IS NULL, 1, 0 ), 1)

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


无论如何,当检查一个值是否为NULL时,您不能使用column\u name=NULL,但您应该使用column\u name is NULL(因为NULL是一个“特定”值)

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


无论如何,在检查值是否为NULL时,不能使用column_name=NULL,但应使用column_name is NULL(因为NULL是一个“特定”值)

我以前试过,tsql返回错误消息“关键字“is”附近的语法不正确”。我以前试过,tsql返回错误消息“关键字“is”附近的语法不正确”