DataBase/Oracle
오라클 로또 추출 쿼리
고독한마법사
2010. 5. 10. 10:14
SELECT MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 1, num)) no1,
MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 2, num)) no2,
MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 3, num)) no3,
MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 4, num)) no4,
MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 5, num)) no5,
MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 6, num)) no6
FROM (
SELECT grp, num
FROM (
SELECT grp, num, MOD(ROWNUM - 1, 45) + 1 rnum
FROM (
SELECT CEIL(LEVEL / 45) grp, MOD(LEVEL - 1, 45) + 1 num
FROM DUAL
CONNECT BY LEVEL <= 45 * 2
ORDER BY 1, DBMS_RANDOM.VALUE
)
)
WHERE rnum <= 6
ORDER BY grp, num
)
GROUP BY grp
MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 2, num)) no2,
MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 3, num)) no3,
MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 4, num)) no4,
MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 5, num)) no5,
MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 6, num)) no6
FROM (
SELECT grp, num
FROM (
SELECT grp, num, MOD(ROWNUM - 1, 45) + 1 rnum
FROM (
SELECT CEIL(LEVEL / 45) grp, MOD(LEVEL - 1, 45) + 1 num
FROM DUAL
CONNECT BY LEVEL <= 45 * 2
ORDER BY 1, DBMS_RANDOM.VALUE
)
)
WHERE rnum <= 6
ORDER BY grp, num
)
GROUP BY grp