안녕하세요.
제가 질문 드리고 싶은 것은 세로로 된 데이터를 가로로 출력하고자 하는 것입니다.
순번 | 이름 |
1 | 홍길동 |
2 | 이순신 |
3 | 강감찬 |
4 | 김유신 |
현재 제가 한 부분은 실제적으로 가로로 출력을 완성한 상태 이구요.
작성한 SQL 은
SELECT MIN(DECODE(순번, 1, 이름)) AS A_1 , MIN(DECODE(순번, 2, 이름)) AS A_2 , MIN(DECODE(순번, 3, 이름)) AS A_3 , MIN(DECODE(순번, 4, 이름)) AS A_4 FROM DUAL; |
이런식으로 해서
A_1 | A_2 | A_3 | A_4 |
홍길동 | 이순신 | 강감찬 | 김유신 |
결과가 나오게 되었습니다.
문제는...
저렇게 생성해야 하는 컬럼의 갯수가 너무 많아서요.
일일히 전부 저 방식으로 해주어야만 하는지..
혹시 가변적으로 SQL 로 처리할 수 있는 방법이 있는지 궁금해서 이렇게 글을 남기게 되었습니다.
부족한 답변 읽어주셔서 감사합니다.
--응용 샘플 1. CREATE OR REPLACE PROCEDURE PROC_TEST ( p_resultset OUT SYS_REFCURSOR ) IS v_query VARCHAR(1000); BEGIN v_query := 'SELECT 1, 2 FROM DUAL'; OPEN p_resultset FOR v_query; END; 2. SQLPLUS 로그인 3. SQL> VAR resultSet REFCURSOR; SQL> CALL PROC_TEST(:resultSet); SQL> PRINT resultSet; 4. PL/SQL 블럭 이용 확인 DECLARE O_TotalRecords NUMBER; BEGIN test(1, O_TotalRecords); DBMS_OUTPUT.PUT_LINE(O_TotalRecords); END;
동적 SQL 바인딩 처리 세미나 자료 : http://www.gurubee.net/article/62865
38페이지