Условный синтаксис оператора Where или другое решение - PullRequest
1 голос
/ 29 сентября 2011

@ MallUnit - это параметр со значением «Unit 401, Unit 402, Unit 403».Предположим, что перед 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 Ответ

3 голосов
/ 29 сентября 2011

Это будет работать:

WHERE
   ( ScheduledMallUnitTypeID IS NULL AND
     ScheduledMallUnitTypeID IN
                (       
                 SELECT Value 
                 FROM Toolbox.dbo.ReportingPortalMultiSetParameterFix(@MallUnit)
                )
   )
   OR
   (
     ScheduledMallUnitTypeID IS NOT NULL AND 
     ScheduledMallUnitTypeID LIKE @MallUnit
   )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...