SQL TOP, LIMIT, FETCH FIRST, ROWNUM, OFFSET 사용

알비레오·2025년 4월 18일

DB

목록 보기
10/15

TOP

지원 DBMS

  • SQL SERVER
  • MS Access

사용법

SELECT TOP 10 * 
FROM TABLE;
SELECT TOP 10 PERCENT *
FROM TABLE;

결과
결과의 상위 N개(또는 %) 행만 반환
UPDATE/DELETE 에도 사용 가능

LIMIT

지원 DBMS

  • MySQL
  • PostgreSQL

사용법

SELECT * 
FROM TABLE 
LIMIT 10;
SELECT *
FROM TABLE
LIMIT 10 OFFSET 20;

결과
결과의 상위 N개 행만 반환,
OFFSET과 조합해 페이징 가능

FETCH FIRST

지원 DBMS

  • Oracle(12c+)
  • DB2
  • PostgreSQL

사용법

SELECT * 
FROM TABLE
FETCH FIRST 10 ROWS ONLY;
SELECT *
FROM TABLE
OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY;

결과
SQL 표준으로, 상위 N개 행만 반환,
OFFSET과 조합해 페이징 가능

ROWNUM

지원 DBMS

  • Oracle

사용법

SELECT *
FROM TABLE
WHERE ROWNUM <= 10;
SELECT *
FROM
(
	SELECT *
	FROM TABLE
	ORDER BY HIREDATE
)
WHERE ROWNUM <= 5;

결과
오라클 고유 문법으로,
쿼리 결과의 N개 행만 반환.
정렬시 서브쿼리 필요

OFFSET

OFFSET는 SQL에서 쿼리 결과의 앞에서부터 지정한 개수만큼의 행(row)을 건너뛰고,
그 다음 행부터 결과를 반환하는 데 사용하는 절

기본 문법

  • MySQL
  • PostgreSQL
  • SQLite
SELECT 컬럼명
FROM 테이블명
ORDER BY 정렬기준
LIMIT 반환할_행수 OFFSET 건너뛸_행수;

예시

SELECT * FROM employees
ORDER BY employee_id
LIMIT 10 OFFSET 20;

결과
-> 21번째 행부터 10개 반환

예시

SELECT * FROM 테이블명
OFFSET 5;

결과
-> 앞의 5개 행을 건너뛰고 나머지 모두 반환

표준 SQL

  • SQL Server
  • Oracle 12c+

예시

SELECT * FROM employees
ORDER BY employee_id
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;

결과
-> 21번째 행부터 10개 반환

0개의 댓글