条件Where语句语法或其他一些解决方案

时间:2011-09-29 16:32:25

标签: tsql

@MallUnit是一个值为'Unit 401,Unit 402,Unit 403'的参数 我想有一个有条件的where声明。假设在AND之前还有其他条件可以正常工作。基本上,如果ScheduledMallUnitTypeID为null,则使用IN条件进行求值。否则,请使用like子句。

AND
                CASE ScheduledMallUnitTypeID IS NULL THEN
                ScheduledMallUnitTypeID IN
                (       
                 SELECT Value 
                 FROM Toolbox.dbo.ReportingPortalMultiSetParameterFix(@MallUnit)
                )
                ELSE ScheduledMallUnitTypeID LIKE @MallUnit
                END

1 个答案:

答案 0 :(得分:3)

这样可行:

WHERE
   ( ScheduledMallUnitTypeID IS NULL AND
     ScheduledMallUnitTypeID IN
                (       
                 SELECT Value 
                 FROM Toolbox.dbo.ReportingPortalMultiSetParameterFix(@MallUnit)
                )
   )
   OR
   (
     ScheduledMallUnitTypeID IS NOT NULL AND 
     ScheduledMallUnitTypeID LIKE @MallUnit
   )