TOP 및 PERCENT를 사용하여 결과 집합 제한
TOP 절을 사용하여 결과 집합으로 반환되는 행 수를 제한할 수 있습니다.
TOP ( expression ) [ PERCENT ] [ WITH TIES ]
expression은 반환될 행 수를 지정하는 숫자 식입니다. PERCENT를 지정하면 결과 집합 행이 expression으로 지정한 비율로 반환됩니다. 예를 들면 다음과 같습니다.
TOP (120) /*Return the top 120 rows of the result set. */
TOP (15) PERCENT /* Return the top 15 percent of the result set. */.
TOP(@n) /* Return the top @n rows of the result set, with the variable declaration: DECLARE @n AS BIGINT; SET @n = 2 */.
TOP 절이 포함된 SELECT 문에 ORDER BY 절이 있으면 정렬된 결과 집합에서 반환될 행이 선택됩니다. 전체 결과 집합은 지정된 순서대로 생성되며 정렬된 결과 집합에서 처음 n개의 행이 반환됩니다. 또한 WITH TIES를 지정하는 경우 이로 인해 expression에서 지정한 수가 초과되더라도 ORDER BY 절이 반환한 마지막 값을 포함하는 모든 행이 반환됩니다.
TOP과 SET ROWCOUNT 비교
결과 집합의 크기를 제한하는 또 다른 방법은 문을 실행하기 전에 SET ROWCOUNT n 문을 실행하는 것입니다. SET ROWCOUNT와 TOP의 차이점은 다음과 같습니다.
- SET ROWCOUNT 제한은 ORDER BY가 계산된 후 결과 집합에 행을 작성하는 데 적용됩니다. ORDER BY가 지정된 경우 지정된 ORDER BY 분류에 따라 정렬된 값 집합에서 n개의 행이 선택되면 SELECT 문이 종료됩니다.
- TOP 절은 이 절이 지정된 단일 SELECT 문에 적용됩니다. SET ROWCOUNT는 SET ROWCOUNT 0을 실행하여 옵션을 해제하는 것과 같이 다른 SET ROWCOUNT 문이 실행될 때까지 계속 적용됩니다.
중요: SQL Server 의 다음 버전에서는 DELETE, INSERT 및 UPDATE 문이 SET ROWCOUNT 사용에 영향을 받지 않게 됩니다. 새 개발 작업에서는 DELETE, INSERT 및 UPDATE 문에 SET ROWCOUNT 옵션을 사용하지 않도록 하고 현재 이 옵션을 사용하는 응용 프로그램은 수정하십시오. 현재 SET ROWCOUNT가 사용되고 있는 DELETE, INSERT 및 UPDATE 문은 TOP을 사용하여 다시 작성하는 것이 좋습니다.
참고 항목
관련 자료
TOP(Transact-SQL)
SELECT(Transact-SQL)
SET ROWCOUNT (Transact-SQL)