Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengehadkan Baris yang Dikembalikan oleh Pertanyaan SQL dalam Pelayan SQL?

Bagaimana untuk Mengehadkan Baris yang Dikembalikan oleh Pertanyaan SQL dalam Pelayan SQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-14 08:55:46703semak imbas

How to Limit Rows Returned by a SQL Query in SQL Server?

Klausa LIMIT dalam SQL Server: Pelaksanaan dan Alternatif

Ramai pembangun terbiasa menggunakan klausa LIMIT yang biasa digunakan dalam MySQL dan sistem pengurusan pangkalan data lain untuk mengehadkan bilangan baris yang dikembalikan oleh pertanyaan SQL. Walau bagaimanapun, SQL Server tidak menyokong klausa LIMIT secara asli. Artikel ini meneroka cara alternatif untuk mencapai fungsi yang sama dalam SQL Server.

Kaedah 1: fungsi ROW_NUMBER() untuk versi SQL Server 2005 dan ke atas

Untuk SQL Server 2005 dan ke atas, anda boleh menggunakan fungsi ROW_NUMBER() untuk mensimulasikan klausa LIMIT. Contoh berikut menunjukkan pendekatan ini:

<code class="language-sql">USE AdventureWorks;
GO
WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
    FROM Sales.SalesOrderHeader 
) 
SELECT * 
FROM OrderedOrders 
WHERE RowNumber BETWEEN 10 AND 20;</code>

Pertanyaan ini mengembalikan baris dengan SalesOrderID antara 10 dan 20, dengan berkesan mengehadkan set hasil.

Kaedah 2: Pertanyaan bersarang untuk SQL Server 2000 dan ke bawah

Untuk SQL Server 2000 dan ke bawah, anda boleh menggunakan kaedah pertanyaan bersarang:

<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) ORDER BY Id DESC</code>

Pertanyaan ini mendapatkan semula 10 baris pertama daripada subkueri dalaman yang mengembalikan 20 baris pertama yang diisih mengikut Id. Dengan membalikkan susunan isihan dalam subkueri luar, hasil akhir ialah 10 baris teratas dalam tertib menaik mengikut Id.

Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Baris yang Dikembalikan oleh Pertanyaan SQL dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn