我使用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請編輯帖子以包含錯誤消息。這將爲這個問題提供背景,並讓其他人集中他們的答案。 –