컬럼데이터들을 위로 올리고 싶습니다. 1 2 911

by 짱구 [SQL Query] 컬럼 위로 [2021.10.25 07:57:44]


AA              AB              AC              AD

================================

11              null             null              22

null            11               null              23

33              null             null              11

 

이와 같은 데이터가 있습니다. 이를

AA              AB              AC              AD

================================

11              11             null              22

33             null            null              23

null            null            null             11

 

 

이와 같이 데이터를 위로 올리고 싶습니다.

 

몇가지 시도해봤는데 좀처럼 되지 않네요.

 

해결 방안 부탁드립니다.

 

감사합니다.

by 마농 [2021.10.25 09:30:11]
WITH tt AS
(
SELECT 1 id, 11 aa, null ab, null ac, 22 ad FROM dual
UNION ALL SELECT 2, null,   11, null, 23 FROM dual
UNION ALL SELECT 3,  33, null, null, 11 FROM dual
)
SELECT *
  FROM (SELECT gb, v
             , ROW_NUMBER() OVER(PARTITION BY gb ORDER BY id) rn
          FROM tt
         UNPIVOT (v FOR gb IN (aa, ab, ac, ad))
        )
 PIVOT (MIN(v) FOR gb IN ('AA' aa, 'AB' ab, 'AC' ac, 'AD' ad))
;

 


by 짱구 [2021.10.26 11:38:53]

마농님 너무 감사합니다.

또  글 읽어주시고 고민해주신분들 감사합니다.

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