如何编写';在';SQL语句中的一个CASE
我在SQL存储过程中有一个WHERE子句,并传入一个整数值。我试图实现的是,当传入数字0时,查询将获取1到10之间的数字列表并使用这些值。这是我的密码如何编写';在';SQL语句中的一个CASE,sql,case,where,Sql,Case,Where,我在SQL存储过程中有一个WHERE子句,并传入一个整数值。我试图实现的是,当传入数字0时,查询将获取1到10之间的数字列表并使用这些值。这是我的密码 AND [COLUMN_NAME] in ( CASE WHEN @PARAMETER <> 0 THEN @PARAMETER ELSE (SELECT [EVENT_ID] FROM [TABLE_NAME]) END ) 然而,我没有看到任何结果。非常感谢您的帮助 D不确定您在这里要问什么。对不起,在语句的其他
AND [COLUMN_NAME] in ( CASE WHEN @PARAMETER <> 0 THEN @PARAMETER
ELSE (SELECT [EVENT_ID] FROM [TABLE_NAME]) END )
然而,我没有看到任何结果。非常感谢您的帮助
D不确定您在这里要问什么。对不起,在语句的其他部分,如何传入多个整数值?如果我写
ELSE(1,2,3)
我会得到一个语法错误,我也不明白你的意思。你能重新表述你的问题吗?也许对您试图解决的问题有一个更好的解释,并有一些具体的/实际的例子?@RobertHarvey在另一部分中,OP希望生成一个以逗号分隔的事件ID列表,这恰好是从1到10。听起来可能是CASE
不能在一种情况下给出标量,在另一种情况下给出元组,但我只是在猜测。不确定您在这里问什么。对不起,在语句的其他部分,我如何传递多个整数值?如果我写ELSE(1,2,3)
我会得到一个语法错误,我也不明白你的意思。你能重新表述你的问题吗?也许对您试图解决的问题有一个更好的解释,并有一些具体的/实际的例子?@RobertHarvey在另一部分中,OP希望生成一个以逗号分隔的事件ID列表,这恰好是从1到10。听起来可能是CASE
不能在一种情况下给出标量,在另一种情况下给出元组,但我只是在猜测。不确定您在这里问什么。对不起,在语句的其他部分,我如何传递多个整数值?如果我写ELSE(1,2,3)
我会得到一个语法错误,我也不明白你的意思。你能重新表述你的问题吗?也许对您试图解决的问题有一个更好的解释,并有一些具体的/实际的例子?@RobertHarvey在另一部分中,OP希望生成一个以逗号分隔的事件ID列表,这恰好是从1到10。听起来可能是CASE
不能在一种情况下给出标量,在另一种情况下给出元组,但我只是在猜测。不确定您在这里问什么。对不起,在语句的其他部分,我如何传递多个整数值?如果我写ELSE(1,2,3)
我会得到一个语法错误,我也不明白你的意思。你能重新表述你的问题吗?也许对您试图解决的问题有一个更好的解释,并有一些具体的/实际的例子?@RobertHarvey在另一部分中,OP希望生成一个以逗号分隔的事件ID列表,这恰好是从1到10。听起来可能是CASE
不能在一种情况下给出标量,在另一种情况下给出元组,但我只是猜测。@Hiky Bill的解决方案适用于您正在尝试的操作。我刚测试过。@Hiky Bill的解决方案适用于您正在尝试做的事情。我刚测试过。@Hiky Bill的解决方案适用于您正在尝试做的事情。我刚测试过。@Hiky Bill的解决方案适用于您正在尝试做的事情。我刚测试过。
SELECT [EVENT_ID] FROM [TABLE_NAME]
WHERE
(@Parameter != 0 and [Column_Name] = @Parameter)
OR
(@Parameter = 0 and [Column_Name] in (SELECT [EVENT_ID] FROM [TABLE_NAME])