@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
答案 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
)