sql

SQL 열을 행으로 변환

무세1 2014. 1. 23. 11:17

SELECT *
  FROM (SELECT 'AAA' AS NAME FROM DUAL
  UNION ALL
  SELECT 'BBB' AS NAME FROM DUAL
  UNION ALL
  SELECT 'CCC' AS NAME FROM DUAL
  UNION ALL
  SELECT 'DDD' AS NAME FROM DUAL)
;

 

SELECT MAX(DECODE(MOD(RN, 5), 1, NAME)) NAME1,
    MAX(DECODE(MOD(RN, 5), 2, NAME)) NAME2,
    MAX(DECODE(MOD(RN, 5), 3, NAME)) NAME3,
    MAX(DECODE(MOD(RN, 5), 4, NAME)) NAME4,
    MAX(DECODE(MOD(RN, 5), 0, NAME)) NAME5
  FROM (SELECT ROWNUM RN, NAME
    FROM (SELECT *
      FROM (SELECT 'AAA' AS NAME FROM DUAL
                        UNION ALL
                        SELECT 'BBB' AS NAME FROM DUAL
                        UNION ALL
                        SELECT 'CCC' AS NAME FROM DUAL
                        UNION ALL
                        SELECT 'DDD' AS NAME FROM DUAL)))
 GROUP BY CEIL(RN / 5);