SELECT문이 출력하는 최대 튜플 수를 제한한다.
ORDER BY절과 함께 사용하면 순서의 최대값을 정의한다.
Format
SELECT [ALL|DISTINCT] {{컬럼명 [[AS] 컬럼_별칭],}⁺|*}
FROM 테이블_리스트
[WHERE 투플_조건식]
[GROUP BY 컬럼명 [HAVING 그룹_조건식]]
[ORDER BY {컬럼명|컬럼_별칭|컬럼_위치 [ASC|DESC],}⁺]
[LIMIT [offset, ] row_count];
Example
가장 규모가 큰 3개 경기장을 출력하라.
SELECT STADIUM_ID, STADIUM_NAME, SEAT_COUNT
FROM STADIUM
ORDER BY SEAT_COUNT DESC, STADIUM_NAME
LIMIT 3; // LIMIT 0, 3과 같다.
최대 3개의 튜플을 출력한다.
좌석 수 기준 규모로 11번째부터 15번째까지의 경기장을 출력하라. (11위, 15위가 아님)
SELECT STADIUM_ID, STADIUM_NAME, SEAT_COUNT
FROM STADIUM
ORDER BY SEAT_COUNT DESC, STADIUM_NAME
LIMIT 10, 5
index가 0부터 시작하기 때문에 11번째부터면 index 10을 써준다.
순위가 높은 n개의 튜플을 검색한다. 추가로, 동점자 처리 기능을 수행한다.
SELECT ROW_NUMBER() OVER (ORDER BY SEAT_COUNT DESC) AS ROW_NUM,
STADIUM_ID, STADIUM_NAME, SEAT_COUNT,
RANK() OVER (ORDER BY SEAT_COUNT DESC) AS SEAT_RANK
FROM STADIUM;
참고로 여기서 ORDER BY절은 사용할 수 없다. 왜냐하면 ORDER BY절은 기준 컬럼을 기준으로 정렬하기 때문이다.
⭐ SELECT문에서는 ORDER BY가 완료된 후 데이터가 출력되는 것이 아니라, 먼저 검색한 후, 마지막으로 ORDER BY 작업이 실행된다.
-> 말 그대로, 출력에만 관여하는 것이다.
< SELECT문의 실행 순서 >