본문 바로가기
백엔드/SQLD

TOP, ROWNUM

by 1005ptr 2020. 11. 23.
반응형

이번 글은 MYSQL의 TOP과 ORACLE의 ROWNUM

그리고 ROWNUM과 ORDER BY에 대한 정리

 

1. TOP은 속도도 빠르고 문법도 매우 쉬움

SELECT TOP(10) FIRST_NAME, JOB_ID

FROM HR.EMPLOYEES

ORDER BY SALARY

 

2. 정렬된 데이터 중 10개를 선택

SELECT FIRST_NAME, JOB_ID

FROM ( SELECT FIRST_NAME, JOB_ID FROM HR.EMPLOYEES ORDER BY SALARY)

WHERE ROWNUM <= 10;

 

3. 얼핏 보면 정렬된 데이터 10개로 보이지만 SELECT -> ORDER BY 순으로 실행되기 때문에

매우 높은 확률로 실행 결과는 10개가 아니다.

SELECT FIRST_NAME, JOB_ID

FROM ( SELECT FIRST_NAME, JOB_ID, ROWNUM RN FROM HR.EMPLOYEES ORDER BY SALARY)

WHERE RN <= 10;

반응형

'백엔드 > SQLD' 카테고리의 다른 글

NULL과 관련된 규칙들  (0) 2020.11.25
외울거 정리  (0) 2020.11.25
DDL, DML, DCL, TCL  (0) 2020.11.23
SAVEPOINT, ROLLBACK  (0) 2020.11.22
제약조건[CHECK]  (0) 2020.11.22

댓글