질문 개수가 동적으로 늘어난다면 쿼리만으로는 안됩니다.
동적쿼리를 이용해야 합니다.
질문하실 때. 결과표만 올리지 마시고 원본도 함께 올려주세요.
WITH t AS ( SELECT 'a' id, 1 seq, 1 q, 'O' a FROM dual UNION ALL SELECT 'a', 1, 2, '36.2' FROM dual UNION ALL SELECT 'a', 1, 3, 'A' FROM dual UNION ALL SELECT 'a', 1, 4, '20211001' FROM dual UNION ALL SELECT 'a', 2, 1, 'X' FROM dual UNION ALL SELECT 'a', 2, 2, '38' FROM dual UNION ALL SELECT 'a', 2, 3, 'A' FROM dual UNION ALL SELECT 'a', 2, 4, '20211005,20211007' FROM dual UNION ALL SELECT 'b', 1, 1, 'O' FROM dual UNION ALL SELECT 'b', 1, 2, '36.5' FROM dual UNION ALL SELECT 'b', 1, 3, 'B' FROM dual UNION ALL SELECT 'b', 1, 4, '20211115' FROM dual UNION ALL SELECT 'c', 1, 1, 'O' FROM dual UNION ALL SELECT 'c', 1, 2, '37.8' FROM dual UNION ALL SELECT 'c', 1, 3, 'AB' FROM dual UNION ALL SELECT 'c', 1, 4, '20211116' FROM dual ) SELECT * FROM t PIVOT (MIN(a) FOR q IN (1, 2, 3, 4)) ORDER BY id, seq ;
동적쿼리는 쿼리 영역이 아닙니다. 프로그래밍 영역입니다.
프로그램에서 동적으로 쿼리 문자열을 만들어 내는 것입니다.
1차 쿼리로 항목들을 가져오고
그 항목들을 이용해 쿼리 텍스트 변수에 2차 쿼리 문자열을 완성시키셔야 합니다.
http://gurubee.net/article/19612