OFFSET FETCH 절(SQL Server Compact)

OFFSET-FETCH 절은 결과 집합에서 창 또는 페이지로만 결과를 내보낼 수 있는 옵션을 제공합니다. OFFSET-FETCH 절은 ORDER BY 절과만 사용할 수 있습니다.

구문

[ORDER BY { order_by_expression [ ASC | DESC ] } [ ,...n][<offset_fetch>] ] 

<offset_fetch> ::= {OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }    [FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY]}

인수

  • OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
    쿼리 식에서 행의 반환을 시작하기 전에 건너뛸 행 수를 지정합니다. OFFSET 절의 인수는 0보다 크거나 같은 정수 또는 식일 수 있습니다. ROW와 ROWS를 서로 바꿔 사용할 수 있습니다.

  • FETCH { FIRST|NEXT } <rowcount expression> { ROW|ROWS } ONLY
    OFFSET 절을 처리한 후 반환할 행 수를 지정합니다. FETCH 절의 인수는 1보다 크거나 같은 정수 또는 식일 수 있습니다. ROW와 ROWS를 서로 바꿔 사용할 수 있습니다. 이와 마찬가지로 FIRST와 NEXT를 서로 바꿔 사용할 수 있습니다.

OFFSET-FETCH 사용에 대한 제한 사항

  • OFFSET 및 FETCH 절을 사용하려면 ORDER BY가 필요합니다.

  • FETCH를 사용하려면 OFFSET 절이 필요합니다. ORDER BY … FETCH를 사용할 수 없습니다.

  • 동일한 쿼리 식에서 OFFSET 및 FETCH와 함께 TOP을 사용할 수 없습니다.

  • OFFSET/FETCH rowcount 식은 정수 값을 반환하는 산술, 상수 또는 매개 변수 식 어떤 것도 될 수 있습니다. rowcount 식은 스칼라 하위 쿼리를 지원하지 않습니다.

다음 예에서는 ORDER BY와 함께 OFFSET-FETCH 절을 사용하는 방법을 보여 줍니다.

예제 1 정렬된 결과 집합에서 첫 10개 행을 건너뛰고 나머지 행을 반환합니다.

SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS;

예제 2- 정렬된 결과 집합에서 첫 10개 행을 건너뛰고 다음 5개 행을 반환합니다.

SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY;