当我尝试使用以下行时,我得到:“关键字'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则完全跳过检查。
答案 0 :(得分:1)
您可以编写WHERE子句,如.....
WHERE @CostCentreID IS NULL
OR CI.CostCentreID IN (
SELECT CAST(Item AS INTEGER)
FROM dbo.SplitString(@CostCentreID, ',')
)