的錯誤是返回時,下面的存儲過程被試圖執行:SQL Server 2000的「附近有語法錯誤關鍵字‘案’」
EXECUTE p_someProc
--list of vars
CASE WHEN @var1=1 AND @var2=1 THEN 3
WHEN @var2=1 THEN 2
WHEN @var1=1 THEN 1 END,
--more vars
還有另一種情況下的功能包括,雖然只有一個錯誤被噴出來指向第一個CASE。
當在PRINT函數中運行相同的表達式時,會返回預期的結果。
declare @var1 bit set @var1 = 1
declare @var2 bit set @var2 = 1
print(CASE WHEN @var1=1 AND @var2=1 THEN 3
WHEN @var1=1 THEN 2
WHEN @var2=1 THEN 1 END)
輸出是 '3'
我認爲我莫名其妙地濫用CASE功能。任何人都可以想出解決方法或解決方法嗎?
在此先感謝。
- Stan
謝謝。使用CASE分配值可解決問題。 – Stan 2009-12-04 07:07:50
np。很難習慣不能用於控制流的案例構造。 – cmsjr 2009-12-04 07:20:22