Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengehadkan Bilangan Rekod yang Diambil dalam SQL Server Tanpa Menggunakan LIMIT?

Bagaimanakah Saya Boleh Mengehadkan Bilangan Rekod yang Diambil dalam SQL Server Tanpa Menggunakan LIMIT?

Linda Hamilton
Lepaskan: 2025-01-18 18:34:11
asal
534 orang telah melayarinya

How Can I Limit the Number of Records Retrieved in SQL Server Without Using LIMIT?

Had rekod dalam SQL Server: LIMIT melebihi

SQL Server tidak menyokong fungsi LIMIT atau operator OFFSET yang biasa digunakan dalam sistem pangkalan data lain. Ini boleh menjadi cabaran apabila mengehadkan bilangan rekod yang diambil.

Walau bagaimanapun, SQL Server menyediakan cara alternatif untuk mencapai fungsi yang serupa. Satu cara ialah menggunakan fungsi ROW_NUMBER() dengan klausa WHERE:

<code class="language-sql">SELECT * 
FROM ( 
  SELECT *, ROW_NUMBER() OVER (ORDER BY name) AS row 
  FROM sys.databases 
) a 
WHERE row > 5 AND row <= 10</code>
Salin selepas log masuk

Subkueri ini memberikan setiap baris nombor baris dan kemudian menapis hasil untuk memasukkan hanya baris dalam julat yang ditentukan.

Cara lain ialah menggunakan klausa TOP:

<code class="language-sql">SELECT TOP 10 * FROM stuff</code>
Salin selepas log masuk

Walaupun TOP mengehadkan bilangan baris yang dikembalikan, ia tidak memberikan kawalan ke atas kedudukan permulaan.

Mengapa SQL Server tidak mempunyai LIMIT?

Kekurangan fungsi LIMIT dalam SQL Server mungkin disebabkan oleh pertimbangan prestasi. Menggunakan LIMIT boleh menyebabkan kemerosotan prestasi, terutamanya pada meja besar. SQL Server mengutamakan mengoptimumkan masa pelaksanaan pertanyaan.

Gunakan OFFSET dan ROWS

Untuk SQL Server 2012 dan lebih baru, anda boleh menggunakan kata kunci OFFSET dan ROWS untuk mempunyai kawalan yang lebih terperinci ke atas set hasil:

<code class="language-sql">SELECT  *
FROM     sys.databases
ORDER BY name 
OFFSET  5 ROWS 
FETCH NEXT 5 ROWS ONLY</code>
Salin selepas log masuk

Pertanyaan ini melangkau 5 baris pertama dan mendapatkan semula 5 baris seterusnya, memberikan keupayaan mengehadkan setanding dengan LIMIT.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengehadkan Bilangan Rekod yang Diambil dalam SQL Server Tanpa Menggunakan LIMIT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan