SELECT CHR(64+alpha) AS p , MIN(DECODE(rNum, 1, lotto)) AS n1 , MIN(DECODE(rNum, 2, lotto)) AS n2 , MIN(DECODE(rNum, 3, lotto)) AS n3 , MIN(DECODE(rNum, 4, lotto)) AS n4 , MIN(DECODE(rNum, 5, lotto)) AS n5 , MIN(DECODE(rNum, 6, lotto)) AS n6 FROM (SELECT alpha , lotto , ROW_NUMBER() OVER(PARTITION BY alpha ORDER BY lotto) rNum -- 요기 FROM (SELECT alpha , lotto , ROW_NUMBER() OVER(PARTITION BY alpha ORDER BY dbms_random.value) rNum FROM (SELECT LEVEL alpha FROM dual CONNECT BY LEVEL <= 5) , (SELECT LEVEL lotto FROM dual CONNECT BY LEVEL <= 45) -- ORDER BY alpha ASC, lotto ASC -- 불필요. ) WHERE rNum <= 6 ) GROUP BY alpha ORDER BY alpha -- 필요. ;