我正在尝试将报告参数传递给存储过程 (@Time) 以指示通过 WHERE 子句在我的数据集中返回哪些类别值,并且不知道正确完成此操作的语法。我怀疑需要使用 case/if 并且我之前已经这样做过,但在需要执行 WHERE 子句时不需要。
DECLARE @Time AS NVARCHAR
SET @Time = 'REG' --possible values of 'REG' and 'OT'
SELECT
f.[Category] AS [Category]
FROM foo f
WHERE
@Time =
CASE @Time
WHEN 'REG' THEN f.[Category] IN (A, B, C, D)
WHEN 'OT' THEN f.[Category] IN (E, F, G)
END