複数のCASEステートメントを持つ単一のSELECTを使用して、ルックアップテーブルに含まれる値を複数の変数に割り当てようとしています。
このテーブルは、次のような2つの列を持つルックアップテーブルです。
[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
私は何が間違っているのですか?