2014-09-01 39 views
1

使用下面的case語句我需要最後一個存儲爲5,6的時候,因爲我需要在where子句中使用這個變量。使用CASE創建一個IN語句變量

Case語句

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

預先感謝您

+0

忘了提,我得到了以下錯誤消息的表:轉換將varchar值「5,6」轉換爲數據類型int時失敗。 – user3029925 2014-09-01 06:55:26

回答

0

創建包含邏輯

access | group 
3  | 5 
4  | 6 
6  | 5 
6  | 6 

在where子句

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