쿼리를 조회할 때마다 랜덤으로 데이터의 순서가 변경되게 하려면 ORDER BY 절에서 DBMS_RANDOM.RANDOM()
함수를 사용하면 된다.
SELECT A.EMPNO, A.EMPNM, B.DEPTNM
FROM A, B, C, D
WHERE A.EMPNO = C.EMPNO
AND B.DEPT_CODE = D.DEPT_CODE
ORDER BY DBMS_RANDOM.RANDOM()
이때 랜덤으로 조회된 함수를 다시 임의적으로 정해진 수만큼 추출하기 위해서는 WHERE 절의 ROWNUM 으로 LIMIT를 설정할 수 있다.
RANDOM으로 추출하는 쿼리를 하나로 묶어 서브쿼리로 이용하여 WHERE절을 새롭게 정의할 수 있다.
SELECT EMPNO, EMPNM, DEPTNM
FROM
(SELECT A.EMPNO, A.EMPNM, B.DEPTNM
FROM A, B, C, D
WHERE A.EMPNO = C.EMPNO
AND B.DEPT_CODE = D.DEPT_CODE
ORDER BY DBMS_RANDOM.RANDOM()
)
WHERE ROWNUM<=10;
'SQL' 카테고리의 다른 글
ORACLE : ROW_NUMBER, RANK (0) | 2023.05.02 |
---|---|
ORACLE ROW_NUMBER() OVER ( PARTITION BY ORDER BY DBMS_RANDOM.RANDOM ) (0) | 2023.04.26 |
ORACLE TRUNC : 특정 달의 첫 날 (0) | 2023.04.25 |
Oracle UPDATE (0) | 2023.03.10 |
programmers : 과일로 만든 아이스크림 고르기 (0) | 2023.01.25 |