> 데이터 베이스 > MySQL 튜토리얼 > ROW_NUMBER() 없이 Microsoft SQL Server 2000에서 LIMIT 절을 어떻게 시뮬레이션할 수 있습니까?

ROW_NUMBER() 없이 Microsoft SQL Server 2000에서 LIMIT 절을 어떻게 시뮬레이션할 수 있습니까?

Linda Hamilton
풀어 주다: 2025-01-08 07:14:41
원래의
849명이 탐색했습니다.

How Can I Simulate the LIMIT Clause in Microsoft SQL Server 2000 Without ROW_NUMBER()?

이전 Microsoft SQL Server 버전의 LIMIT 절에 대한 해결 방법

Microsoft SQL Server 2000에는 ROW_NUMBER() 기능이 없어 MySQL과 같은 데이터베이스에 있는 LIMIT 절의 기능을 복제하기가 어려웠습니다. 여러 가지 방법이 있지만 각각 단점이 있습니다.

TOP을 사용한 중첩 쿼리는 일반적인 접근 방식입니다. 그러나 원하는 범위가 전체 행 수를 초과하면 이 방법이 실패하고 특히 마지막 "페이지"에서 페이지 매김 오류가 발생합니다.

또 다른 기술은 테이블 내의 고유한 열을 사용합니다. 이는 적합한 고유 식별자의 존재 여부에 따라 달라지므로 본질적으로 제한됩니다.

SQL Server 2005 이상의 경우 EXCEPT 문은 더욱 강력한 솔루션을 제공합니다. 여기에는 중첩된 쿼리를 EXCEPT 연산자와 결합하여 초기 행을 필터링하여 원하는 하위 집합을 효과적으로 달성하는 작업이 포함됩니다.

예시: 50~75행을 검색하려면:

<code class="language-sql">SELECT * FROM (
    SELECT TOP 75 COL1, COL2
    FROM MYTABLE ORDER BY COL3
) AS foo
EXCEPT
SELECT * FROM (
    SELECT TOP 50 COL1, COL2
    FROM MYTABLE ORDER BY COL3
) AS bar;</code>
로그인 후 복사

요약하자면, SQL Server 2000에는 LIMIT을 모방하기 위한 해결 방법이 있지만 타협이나 추가 기능에 의존하지 않고는 그 동작을 완벽하게 복제할 수 없습니다. ROW_NUMBER()을 지원하는 버전(SQL Server 2005 이상)에서는 해당 기능을 사용하는 것이 가장 효과적이며 권장되는 방법입니다.

위 내용은 ROW_NUMBER() 없이 Microsoft SQL Server 2000에서 LIMIT 절을 어떻게 시뮬레이션할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿