질문 개수가 동적으로 늘어난다면 쿼리만으로는 안됩니다.
동적쿼리를 이용해야 합니다.
질문하실 때. 결과표만 올리지 마시고 원본도 함께 올려주세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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 3 4 5 6 7 | select * from ( select 이름코드, 진단결과순서, 질문, 질문답변 from 진단테이블) pivot ( max (질문답변) for 질문 in (질문1, 질문2, 질문3.....) ) 이런형식입니다 !.. |
in 안에 들어가는 질문리스트가 담긴 테이블이 따로 있어서 select 해서 골라낼수는 있는데
ex) select 질문 from 질문테이블 where 질문항목순서= '26' > 26번에 대한 질문을 가져오면 됨
어떠한방식으로 동적쿼리로 사용해야하는지 감이 안와서요.. 이해가 되시면 좋겠는데 설명하기가 어렵네요...
동적쿼리는 쿼리 영역이 아닙니다. 프로그래밍 영역입니다.
프로그램에서 동적으로 쿼리 문자열을 만들어 내는 것입니다.
1차 쿼리로 항목들을 가져오고
그 항목들을 이용해 쿼리 텍스트 변수에 2차 쿼리 문자열을 완성시키셔야 합니다.
http://gurubee.net/article/19612