Tsql Where子句检查参数值返回的字段为空
我有这样一个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 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”附近的语法不正确”