我想通过使用具有多个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