본문 바로가기

DB/Oracle

Oracle 랜덤하게 Row 뽑기

select * from(
    select * from 테이블명
    order by DBMS_RANDOM.RANDOM
) where rownum < 10;

1. DBMS_RANDOM.RANDOM : 정렬한 필드를 랜덤하게 설정한다.
2. 외부 쿼리를 둘러싸서 가져올 로 개수를 지정한다.

-- 이렇게 간단한것을..

# 히트 카운트로 정렬해서 가져오기
select A.*, RANK() OVER(ORDER BY A.HITCNT DESC)
from (
    select * from 테이블명
    order by DBMS_RANDOM.RANDOM
) A
where rownum < 10;