我在SQL存储过程中有一个WHERE子句并传入一个整数值。我想要实现的是,当传入数字0时,查询将采用1-10的数字列表并使用这些值。这是我的代码。
AND [COLUMN_NAME] in ( CASE WHEN @PARAMETER <> 0 THEN @PARAMETER
ELSE (SELECT [EVENT_ID] FROM [TABLE_NAME]) END )
以下行返回 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
SELECT [EVENT_ID] FROM [TABLE_NAME]
然而,我没有看到任何结果。非常感谢任何帮助。
d
答案 0 :(得分:3)
WHERE
(@Parameter != 0 and [Column_Name] = @Parameter)
OR
(@Parameter = 0 and [Column_Name] in (SELECT [EVENT_ID] FROM [TABLE_NAME])