(오라클) ORDER BY DBMS_RANDOM.RANDOM() 구분 질문 0 1 1,609

by jake3371 [Oracle 기초] [2019.09.23 19:22:32]


SELECT DBMS_RANDOM.RANDOM() FROM DUAL;

하게 되면 꽤 큰 수가 리턴 됩니다.

 

ORDER BY 1 하게 되면 첫번째 컬럼 기준으로 정렬

ORDER BY 2 하게 되면 두번째 컬럼 기준으로 정렬

ORDER BY 1000 하게 되면 컬럼 갯수를 벗어나서 오류 발생

 

그런데 ORDER BY DBMS_RANDOM.RANDOM() 구문이 잘 작동하는 이유는 뭔가요?

꽤 큰 수가 랜덤으로 나와서 ORDER BY 절에 들어가는데 오류가 발생하지 않은 이유가 궁금합니다.

ORDER BY 절과 RANDOM() 함수는 그냥 랜덤하게 정렬해준다. 이렇게 미리 정의가 되어 있는 SYNTEX 인가요?

by jkson [2019.09.24 08:25:11]

order by 에 숫자는 숫자 자체로 적어야 컬럼 기준이 되는 것입니다.

order by dbms_random으로 하게 되면 각 행에서 랜덤함수로 값이 지정되고 그 값에 따라 정렬한다는 것입니다.

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