Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写';在';SQL语句中的一个CASE_Sql_Case_Where - Fatal编程技术网

如何编写';在';SQL语句中的一个CASE

如何编写';在';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不确定您在这里要问什么。对不起,在语句的其他

我在SQL存储过程中有一个WHERE子句,并传入一个整数值。我试图实现的是,当传入数字0时,查询将获取1到10之间的数字列表并使用这些值。这是我的密码

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])