값이 null일 경우 당겨서 조회 0 3 393

by Harut [Oracle 기초] [2019.04.01 15:47:51]


안녕하세요.

아래 표처럼 컬럼값 중간중간에 NULL이 들어간 테이블이 있습니다.

해당 테이블을 조회할 때 NULL값이 아닌 데이터가 들어가 있는 컬럼을 당겨서 조회하고 싶습니다만 생각해도 마땅한 방법이 떠오르지가 않습니다.

  COL1 COL2 COL3 COL4
ROW1     A  
ROW2 A     A
ROW3 A      

아래는 출력됬으면 하는 결과물입니다. 도움 주시면 감사하겠습니다. (_ _)

  COL1 COL2 COL3 COL4
ROW1 A   A A
ROW2 A      

 

by 마농 [2019.04.01 16:08:17]
WITH t AS
(
SELECT '' c1, '' c2, 'A' c3, '' c4 FROM dual
UNION ALL SELECT 'A', '', '', 'A' FROM dual
UNION ALL SELECT 'A', '', '', ''  FROM dual
)
SELECT *
  FROM (SELECT ROW_NUMBER() OVER(PARTITION BY gb ORDER BY 1) rn
             , gb, c
          FROM t
         UNPIVOT (c FOR gb IN (c1, c2, c3, c4))
        )
 PIVOT (MIN(c) FOR gb IN ('C1' c1, 'C2' c2, 'C3' c3, 'C4' c4))
;

 


by Harut [2019.04.01 17:27:50]

도움주셔서 정말 감사합니다.

혹시 gb, c에 어떻게 값이 들어가는지 알려주실수 있을까요?


by 마농 [2019.04.01 17:29:44]

실행해 보시면 알 수 있을 텐데요? 단계별로 실행해 보세요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입