SQL Server/실기 정리

SQL Server 6강 - 결과 행 제한 (TOP, OFFSET, FETCH)

코딩하는냥이 2025. 5. 30. 10:41
반응형

이번 글에서는 SQL Server에서 조회할 행 수를 제한하는 방법에 대해 학습했습니다.
대표적으로 TOP, OFFSET, FETCH 구문을 통해 정렬된 데이터 중 일부만 추출할 수 있습니다.


📌 예제 코드

-- 최근 IPO 기업 중 상위 10개만 조회 (IPO 연도 내림차순, symbol 오름차순)
SELECT TOP 10 * FROM nasdaq_company 
ORDER BY ipo_year DESC, symbol ASC;

-- 1000번째 이후부터 모든 데이터 조회 (symbol 기준 오름차순)
SELECT * FROM nasdaq_company 
ORDER BY symbol 
OFFSET 1000 ROWS;

-- 1000번째 이후에서 다음 10개만 조회 (페이징)
SELECT * FROM nasdaq_company 
ORDER BY symbol 
OFFSET 1000 ROWS 
FETCH NEXT 10 ROWS ONLY;

💻 실행 결과 예시

  • 첫 번째 쿼리는 최근 IPO된 기업들 중에서 가장 최신 순으로 10개만 보여줍니다.
  • 두 번째 쿼리는 정렬된 결과에서 앞의 1000개를 건너뛰고 나머지를 모두 보여줍니다.
  • 세 번째 쿼리는 앞의 1000개를 건너뛴 뒤, 딱 10개만 결과로 반환합니다.

💬 코드 설명

  • TOP N: 상위 N개의 행만 출력 (정렬이 선행되어야 의미 있음)
  • OFFSET N ROWS: 앞에서 N개의 행을 건너뜀
  • FETCH NEXT N ROWS ONLY: OFFSET 이후 N개의 행만 선택
  • OFFSET/FETCH는 페이징 처리에 유용하며, 반드시 ORDER BY와 함께 사용해야 함

💡 포인트 정리

  • TOP N: 특정 수만큼 결과를 제한
  • OFFSET: 앞에서부터 N행 생략
  • FETCH NEXT: OFFSET 이후 몇 행을 가져올지 설정
  • 페이징 처리를 하려면 ORDER BY + OFFSET + FETCH 조합 필수

📌 정리하자면, 이번 강의에서는 TOP, OFFSET, FETCH를 이용해 SQL 결과 행을 제한하는 방법을 실습했습니다.
정렬된 데이터에서 원하는 위치의 일부만 추출할 수 있어, 특히 대용량 데이터 처리나 페이지네이션 구현에 매우 유용한 문법입니다.