안녕하세요~ 마지막 주말 저녁 잘 보내고 계신가요?^^ 일요일 저녁은 참 외로운 밤인거 같애요.... ㅜㅠ
다름이 아니라 아래와 같이 테이블에 각 컬럼별로 숫자들이 있는데요 테이블의 각 컬럼별 숫자들을 1개씩 랜덤으로 뽑아 행으로는 5개의 행으로 출력하려고 합니다... 인터넷에 검색을 해보니 DBMS_RANDOM.VALUE 이라는 패키지를 이용해보라는 글이 있어 적용해보려고 하는데 정확히 어떻게 활용하는지 잘 모르겠습니다..... 조언을 좀 부탁드리겠습니다...
NUMBER1 | NUMBER2 | NUMBER3 | NUMBER4 | NUMBER5 | NUMBER6 | NUMBER7 |
1 | 10 | 23 | 26 | 28 | 40 | 31 |
2 | 3 | 11 | 26 | 37 | 43 | 39 |
9 | 26 | 35 | 37 | 40 | 42 | 2 |
4 | 7 | 32 | 33 | 40 | 41 | 9 |
6 | 14 | 19 | 25 | 34 | 44 | 11 |
7 | 9 | 18 | 23 | 28 | 35 | 32 |
-- 로또645 -- SELECT rnum , MIN(DECODE(rn, 1, v)) n1 , MIN(DECODE(rn, 2, v)) n2 , MIN(DECODE(rn, 3, v)) n3 , MIN(DECODE(rn, 4, v)) n4 , MIN(DECODE(rn, 5, v)) n5 , MIN(DECODE(rn, 6, v)) n6 , MIN(DECODE(rn, 7, v)) n7 FROM (SELECT rnum, v , ROW_NUMBER() OVER(PARTITION BY rnum ORDER BY DECODE(rn, 7, 99, v)) rn FROM (SELECT CEIL(LEVEL/45) rnum , MOD(LEVEL-1, 45)+1 v , ROW_NUMBER() OVER(PARTITION BY CEIL(LEVEL/45) ORDER BY dbms_random.value) rn FROM dual CONNECT BY LEVEL <= 45 * 5 ) WHERE rn <= 7 ) GROUP BY rnum ORDER BY rnum ;