使用CASE创建IN语句变量

时间:2014-09-01 06:38:05

标签: sql sql-server-2008 case

使用以下case语句,我需要最后一个什么时候存储为5,6因为我需要在where子句中使用这个变量。

案例陈述

DECLARE @l_RepAccess as nvarchar(8),@l_RepGroup as varchar(8)

SET @l_RepAccess = 6
SET @l_RepGroup = ''

SELECT @l_RepGroup =
CASE @l_RepAccess 

WHEN '3' THEN 5
WHEN '4' THEN 6
WHEN '6' THEN '5' + ',' + '6' 
ELSE ('')
END  

SELECT @l_RepGroup

变量需要进入这一行。

or (A.REPORGLVL IN (@l_RepGroup)) 

提前谢谢

1 个答案:

答案 0 :(得分:0)

创建一个包含逻辑

的表
access | group
3      | 5
4      | 6
6      | 5
6      | 6

在where子句中

Where group in (select group from tbl where access = @l_RepAccess)