prosource

테이블에서 Oracle 랜덤 행

probook 2023. 10. 25. 23:24
반응형

테이블에서 Oracle 랜덤 행

오라클의 테이블에서 임의의 행을 선택하는 솔루션을 찾았습니다.실제로 행을 랜덤 방식으로 정렬하지만 랜덤 결과에 대해 첫 번째 행만 가져올 수 있습니다.

SELECT *
FROM table
ORDER BY dbms_random.value;

저는 그게 어떻게 작동하는지 이해가 안 돼요.ORDER BY 후 정렬에 사용되는 열이어야 합니다."dbms_random.value"는 0보다 낮은 값을 반환합니다.이런 행동은 설명이 가능한가요, 아니면 그냥 그런 건가요?

감사해요.

당신은 또한 이렇게 생각할 수 있습니다.

SELECT col1, col2, dbms_random.value
FROM table
ORDER BY 3

이 예제에서 숫자 3 = 세번째 열

dbms_random.value로 주문할 경우 Oracle은 열이 아닌 식을 기준으로 주문합니다.모든 레코드에 대해 Oracle은 임의의 숫자를 계산한 다음 이 숫자로 순서를 정합니다.

비슷한 방식으로 다음과 같습니다.

select * from emp order by upper(ename);

당신은 함수를 기반으로 주문을 받고 있습니다.

언급URL : https://stackoverflow.com/questions/7750396/oracle-random-row-from-table

반응형