#tsql
#tsql
Вопрос:
@MallUnit — это параметр со значением ‘Unit 401, Unit 402, Unit 403’ Я хотел бы иметь условный оператор where. Предположим, что перед И есть другие условия, которые работают просто отлично. В принципе, если ScheduledMallUnitTypeID равен нулю, вычислите, используя условие IN . В противном случае используйте предложение like .
AND
CASE ScheduledMallUnitTypeID IS NULL THEN
ScheduledMallUnitTypeID IN
(
SELECT Value
FROM Toolbox.dbo.ReportingPortalMultiSetParameterFix(@MallUnit)
)
ELSE ScheduledMallUnitTypeID LIKE @MallUnit
END
Ответ №1:
Это сработало бы:
WHERE
( ScheduledMallUnitTypeID IS NULL AND
ScheduledMallUnitTypeID IN
(
SELECT Value
FROM Toolbox.dbo.ReportingPortalMultiSetParameterFix(@MallUnit)
)
)
OR
(
ScheduledMallUnitTypeID IS NOT NULL AND
ScheduledMallUnitTypeID LIKE @MallUnit
)
Комментарии:
1. Чего-то не хватает.
ScheduledMallUnitTypeID
не может быть одновременноNULL
иIN (SELECT …)
.