0

当我尝试使用以下行时,我得到这个:“关键字'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 则完全跳过检查。

4

1 回答 1

1

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

WHERE @CostCentreID IS NULL 
  OR  CI.CostCentreID IN (
                           SELECT CAST(Item AS INTEGER) 
                           FROM dbo.SplitString(@CostCentreID, ',')
                         )
于 2017-01-29T23:30:12.037 回答