2014-04-15 2 views
0

나는 6 개의 열 (A, B, C, D, E, F)을 가진 테이블을 가지고있다. 고정 된 열이 D가 null이 아니라면, 3 개의 열 D, E, F를 가져 오려고합니다. 그렇지 않으면 D가 null 인 경우 다른 3 개의 열 A, B, C를 가져 오려고합니다.CASE는 어떻게 사용하나요?

사용을 시도하고 있지만 처리 할 수 ​​없습니다.

SELECT 
    CASE WHEN D IS NOT NULL 
    THEN SELECT D, E, F 
    ELSE 
    SELECT A,B,C 
    END 
FROM Mytable. 

모든 포인터?

답변

3

각 열에서 확인 할 수 있습니다

SELECT 
    CASE WHEN D IS NOT NULL THEN D ELSE A END, 
    CASE WHEN D IS NOT NULL THEN E ELSE B END, 
    CASE WHEN D IS NOT NULL THEN F ELSE C END 
FROM Mytable 

을하거나 UNION

SELECT A,B,C 
FROM Mytable 
WHERE D IS NULL 
UNION ALL 
SELECT D,E,F 
FROM Mytable 
WHERE D IS NOT NULL 
0

이 시도 사용

SELECT 
    CASE WHEN D IS NULL THEN A ELSE D END as C1, 
    CASE WHEN D IS NULL THEN B ELSE E END as C2, 
    CASE WHEN D IS NULL THEN C ELSE F END as C3 
FROM tbl 
관련 문제