숫자 랜덤 출력 문의 1 2 1,273

by 오라클왕따 [Oracle 기초] [2014.04.20 22:20:22]


안녕하세요~ 마지막 주말 저녁 잘 보내고 계신가요?^^ 일요일 저녁은 참 외로운 밤인거 같애요.... ㅜㅠ

다름이 아니라 아래와 같이 테이블에 각 컬럼별로 숫자들이 있는데요 테이블의 각 컬럼별 숫자들을 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

 

 

by 마농 [2014.04.21 08:34:35]
-- 로또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
;

 


by 오라클왕따 [2014.04.21 14:39:44]

아~ 정말 감사합니다~ 마농님~^^ 잘 활용하겠습니다~

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입