한도그리고오프셋당신은 단지 일부만 검색할 수 있습니다 쿼리의 나머지 부분에 의해 생성된 행:
선택select_list발신테이블_표현
[주문 기준 ...]
[제한번호| 모두] [오프셋번호 ]
한도 개수가 주어지면 그 만큼의 행만 생성됩니다. 반환됨(그러나 쿼리 자체가 더 적은 결과를 산출하는 경우 더 적을 수도 있음) 행).모두 제한생략과 동일 그만큼제한절.
오프셋그만큼 많은 행을 건너뛰라고 합니다. 행 반환을 시작하기 전에.오프셋 0생략한 것과 같습니다오프셋절 및한도 NULL생략한 것과 같습니다제한절. 둘 다인 경우오프셋그리고제한나타나다, 그 다음에오프셋이전 행을 건너뜁니다. 세기 시작함한도행 반환됩니다.
사용 시제한중요한 것은 사용하다주문 기준제약하는 조항 결과 행을 고유한 순서로 정렬합니다. 그렇지 않으면 당신은 얻을 것이다 쿼리 행의 예측할 수 없는 하위 집합입니다. 당신은 요구할 수도 있습니다 10번째부터 20번째 행까지이고, 10번째부터 20번째 행까지입니다. 무슨 주문? 지정하지 않는 한 순서를 알 수 없습니다.주문 기준.
쿼리 최적화 프로그램은 다음을 수행합니다.제한속으로 쿼리 계획을 생성할 때 계정을 사용하므로 다음에 따라 다른 계획을 얻습니다(다른 행 순서 생성). 당신이 무엇을 위해 주는가제한그리고오프셋. 따라서 다른 것을 사용하여제한/오프셋값 쿼리 결과의 다른 하위 집합 선택일관되지 않은 결과를 제공합니다예측 가능한 결과 순서를 적용하지 않는 한주문 기준. 이것은 버그가 아닙니다. 그것은 타고난 것입니다 SQL이 제공을 약속하지 않는다는 사실의 결과 다음을 제외하고는 특정 순서로 쿼리 결과를 반환합니다.주문 기준순서를 제한하는 데 사용됩니다.
다음으로 건너뛴 행은오프셋절 여전히 서버 내부에서 계산해야 합니다. 그러므로 큰오프셋비효율적일 수 있습니다.