여러 개의 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 (및 인덱스)를 사용하여 세 및 선택 빨라집니다 :
그래서, 이것을 시도. –
@AdaTheDev : 감사합니다. 이제 잘못 된 것을 이해합니다! :) @KM : 다행스럽게도이 레코드는 소수의 레코드가있는 조회 테이블 일 뿐이며 가까운 미래에 몇 가지 레코드가 추가 될 것입니다. –