안녕하세요.
예제가 많아서 보기는 했는데 막상 적용하려니까 깜깜합니다.
데이터가 아래와 같습니다. CODE는 늘어날수 있습니다. 꼭 (A001..B001이렇게 순차적인 데이터는 아닙니다. 고정값이 아닙니다.)
위 데이터를
이렇게 바꾸고 싶습니다.
어떻게 해야할까요?
도움부탁드립니다.
가변적인 열에 대한 처리는 Sql만으로는 불가합니다. 일단 고정값에 대한 행열변환쿼리는 다음과 같습니다. SELECT 'AMT' code , MIN(DECODE(code, 'A001', amt)) A001 , MIN(DECODE(code, 'B001', amt)) B001 , MIN(DECODE(code, 'C001', amt)) C001 FROM t ;
대안 1) 가변적인 열의 갯수가 한정적이라면 - 최대 표현 갯수를 정해 놓고 고정적으로 표현하기
대안 2) 하나의 열에 몰아 넣기 - xmlagg, wm_concat, listagg
대안 3) 동적 쿼리를 사용하기 - 프로시져로 쿼리를 동적으로 구성하여 실행시켜 커서형태로 반환하기