在where in子句中使用case语句是否可行?像这样:
DECLARE @Status VARCHAR(50);
SET @Status='published';
SELECT * FROM Product P
WHERE P.Status IN (CASE WHEN @Status='published' THEN (1,3)
WHEN @Status='standby' THEN (2,5,9,6)
WHEN @Status='deleted' THEN (4,5,8,10)
ELSE (1,3)
END)
这段代码出现了错误:在逗号附近语法不正确。
where
中使用case
,但不是这样的用法。每个语句中case
必须返回一个值。 - Sean