SQL - LIMIT

김규린·2024년 8월 18일
0

Data Base

목록 보기
6/20

1. LIMIT

  • LIMIT 절은 SELECT문의 결과 집합에서 반환할 행의 수를 제한하는데 사용된다.

1. LIMIT의 활용

MySQL Ver

-- limit

SELECT * FROM tbl_menu;

-- 1행부터 5개의 메뉴 행 조회
SELECT 
		* 
	FROM tbl_menu
	LIMIT 0, 5; -- Limit 시작 인덱스, 시작 인덱스부터 조회할  행의 갯수

-- 6행부터 5개의 메뉴 행 조회	
SELECT
		*
	FROM tbl_menu
	LIMIT 5, 5;

  • offset 생략시
-- Limit의 offset 생략 시
SELECT 
		*
	FROM tbl_menu;
	
SELECT 
		*
	FROM tbl_menu
--	LIMIT 5;
	LIMIT 0, 5;
	
-- limit을 자주 쓰진 않지만 이후 TOP-N 분석이나 paging 처리를 할 때 사용 된다.

Oracle Ver

  • LIMIT 대신 ROWNUM 사용
-- 전체 메뉴 조회
SELECT * FROM tbl_menu;

-- 1행부터 5개의 메뉴 행 조회 (ROWNUM 사용)
SELECT *
FROM tbl_menu
WHERE ROWNUM <= 5;

-- 6행부터 5개의 메뉴 행 조회
SELECT *
FROM (
    SELECT tbl_menu.*, ROWNUM AS rn
    FROM tbl_menu
) 
WHERE rn BETWEEN 6 AND 10;
  • OFFSET 생략 시
-- OFFSET 없이 5개의 메뉴 행 조회 (ROWNUM 사용)
SELECT *
FROM tbl_menu
WHERE ROWNUM <= 5;

-- OFFSET을 사용하여 6번째 행부터 5개의 행 조회 (ROW_NUMBER() 사용)
SELECT *
FROM (
    SELECT tbl_menu.*, ROW_NUMBER() OVER (ORDER BY menu_code) AS rn
    FROM tbl_menu
)
WHERE rn BETWEEN 6 AND 10;

Oracle에서는 LIMIT의 OFFSET 기능을 ROWNUM과 함께 직접적으로 사용하기 어렵기 때문에 ROW_NUMBER()를 사용

profile
나는 할 수 있다...!

0개의 댓글