使用SET操作的SQL Server 2008 Case语句

时间:2014-03-31 13:43:36

标签: sql-server-2008 tsql set case

我正在使用Sql server 2008

我在T-SQL

中寻找这样的空闲语句
SELECT CASE @H_CNT 
 WHEN 2 THEN 
 @H_VAR_1 = @H_VALUE_1
 WHEN 3 THEN
 @H_VAR_2 = @H_VALUE_2
END 

但上述陈述未被接受并显示错误。

这里有什么问题

2 个答案:

答案 0 :(得分:1)

SELECT @H_VAR_1 = CASE WHEN @H_CNT = 2 THEN @H_VALUE_1 ELSE @H_VAR_1 END,
       @H_VAR_2 = CASE WHEN @H_CNT = 3 THEN @H_VALUE_2 ELSE @H_VAR_2 END 

答案 1 :(得分:0)

问题是您无法在CASE声明中进行分配。您可以从结果分配CASE语句:

SELECT @H_VAR_1 = CASE @H_CNT WHEN 2 THEN @H_VALUE_1 ELSE @H_VAR_1 END,  
       @H_VAR_2 = CASE @H_CNT WHEN 3 THEN @H_VALUE_2 ELSE @H_VAR_2 END