2011-09-29 56 views
1

@MallUnit是一個參數,其值爲'Unit 401,Unit 402,Unit 403' 我想要一個條件where語句。假設在AND之前還有其他條件可以正常工作。基本上,如果ScheduledMallUnitTypeID爲null,則使用IN條件評估。否則,使用類似的子句。Conditional Where語句語法或其他解決方案

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

回答

3

這會工作:

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 ...)'。 –