Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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 server 在where子句中使用Case语句选择多个值_Sql Server_Tsql - Fatal编程技术网

Sql server 在where子句中使用Case语句选择多个值

Sql server 在where子句中使用Case语句选择多个值,sql-server,tsql,Sql Server,Tsql,我试图在T-SQL中实现以下功能,但这种语法不正确。 重写这篇文章的最佳方式是什么 declare @region varchar(50) set @region = 'REGION1' declare cono_cursor CURSOR for Select CpnyID from ( Select CASE @region when 'REGION1' then '116','118','129','131','139','145','906','907',

我试图在T-SQL中实现以下功能,但这种语法不正确。 重写这篇文章的最佳方式是什么

 declare @region varchar(50)

set @region = 'REGION1'

declare cono_cursor CURSOR for
Select CpnyID

     from 
(
Select CASE @region 
    when 'REGION1'  then '116','118','129','131','139','145','906','907','943','948')
    when 'REGION2' then ('113','114','122','130','132','135','136','137','138','941') 
    when 'REGION3' then ('106','107','111','112','123','128','202','916','919') 
 end 
 )A

创建一个包含两列的查找表并查询该表。

CASE
是一个表达式-它计算一个(单个)值。可能有更好的方法来解决这个问题,但您只向我们展示了您正在做的一小部分-您确定您甚至需要一个
光标
?是的,我确实需要一个光标,因为我必须对每个cpnyid进行多个计算。这只是一个更大的脚本的一部分