我使用SQL Server 2008SQL Server 2008的Case语句
我要寻找一个在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
但上述说法是不能接受的,并显示像这样的闲置声明错误。
什么是这里
我使用SQL Server 2008SQL Server 2008的Case语句
我要寻找一个在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
但上述说法是不能接受的,并显示像这样的闲置声明错误。
什么是这里
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
你确定这不适合你吗?为什么? –
,它的工作thanks.but你的答案将不适合我在我的情况基本上我有一个if语句,每个记录执行一次。 我有5000万条记录,所以这些如果得到执行的ecery记录,所以可能如果我使用它会使代码更快 – user3481294
您可能只需要添加一个where条件。但很难说没有任何表格,示例数据或预期输出。 –
问题的问题是,你不能在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
很好,那是我想知道Roryap – user3481294
'CASE'在T-SQL是一个** **表达 - 它可以返回一个值(文字或SQL变量),但它**不能**执行代码块 –
@ user3481294请编辑帖子以包含错误消息。这将为这个问题提供背景,并让其他人集中他们的答案。 –