我想通過使用具有多個CASE語句的單個SELECT將查找表中包含的值分配給多個變量。使用單個SELECT語句和CASE將表值賦給多個變量?
該表有兩列像這樣的查詢表:
[GreekAlphabetastic]
SystemID Descriptor
-------- ----------
1 Alpha
2 Beta
3 Epsilon
這是我的語法:
SELECT
@VariableTheFirst =
CASE
WHEN myField = 'Alpha' THEN tbl.SystemID
END,
@VariableTheSecond =
CASE
WHEN myField = 'Beta' THEN tbl.SystemID
END,
@VariableTheThird =
CASE
WHEN myField = 'Epsilon' THEN tbl.SystemID
END
FROM GreekAlphabetastic tbl
然而,當我檢查變量,這個語句的執行,我希望每個被賦予適當的值,但是隻有最後的具有分配的值。
SELECT
@VariableTheFirst AS First,
@VariableTheSecond AS Second,
@VariableTheThird AS Third
Results:
First Second Third
NULL NULL 3
我在做什麼錯?
這個工作,但如果表是大三從使用WHERE(和索引)會更快。 – 2010-03-26 16:47:18
@AdaTheDev:謝謝,我現在明白出了什麼問題! :) @KM:幸運的是,這只是一張只有少量記錄的查找表,不管怎樣,它在不久的將來都不會添加更多的附加記錄。 – 2010-03-26 18:04:37