在CASE的THEN中使用IN语句

时间:2017-01-29 23:18:55

标签: sql-server case sql-in

当我尝试使用以下行时,我得到:“关键字'IN'附近的语法不正确。”

WHERE
    CASE
        WHEN @CostCentreID IS NOT NULL THEN CI.CostCentreID IN(SELECT CAST(Item AS INTEGER) FROM dbo.SplitString(@CostCentreID, ','))
    END    

我无法弄清楚出了什么问题。

THEN命令在CASE语句之外正常工作。我试图捕获NULL条目。如果为NULL则完全跳过检查。

1 个答案:

答案 0 :(得分:1)

您可以编写WHERE子句,如.....

WHERE @CostCentreID IS NULL 
  OR  CI.CostCentreID IN (
                           SELECT CAST(Item AS INTEGER) 
                           FROM dbo.SplitString(@CostCentreID, ',')
                         )