Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Meniru Klausa LIMIT MySQL dalam SQL Server?
SQL Server bersamaan dengan klausa LIMIT MySQL
Klausa LIMIT MySQL, yang mengehadkan bilangan baris yang dikembalikan oleh pertanyaan, tidak mempunyai persamaan langsung dalam SQL Server. Ini boleh mengecewakan, tetapi terdapat beberapa penyelesaian yang tersedia.
Sintaks OFFSET / FETCH (SQL Server 2012 dan lebih baru)
Dalam SQL Server 2012 dan kemudian, ANSI sintaks OFFSET / FETCH standard boleh digunakan untuk penomboran. Pertanyaan berikut menunjukkan sintaks ini:
SELECT ID, Name, Price, Image FROM Products ORDER BY ID ASC OFFSET (@start_from - 1) ROWS FETCH NEXT @items_on_page ROWS ONLY;
ROW_NUMBER() kaedah (sebelum SQL Server 2012)
Sebelum SQL Server 2012, kaedah ROW_NUMBER() boleh digunakan untuk mensimulasikan LIMIT klausa:
WITH o AS ( SELECT TOP ((@start_from - 1) + @items_on_page) RowNum = ROW_NUMBER() OVER (ORDER BY ID ASC) /* , other columns */ FROM Products ) SELECT RowNum /* , other columns */ FROM o WHERE RowNum >= @start_from ORDER BY RowNum;
Penyelesaian lain
Selain kaedah yang diterangkan di atas, terdapat pelbagai penyelesaian lain yang tersedia, termasuk menggunakan kursor atau jadual sementara. Walau bagaimanapun, penyelesaian ini secara amnya kurang cekap dan lebih kompleks.
Adalah penting untuk ambil perhatian bahawa Microsoft telah mengakui pengehadan mekanisme penomboran semasa dan telah menyatakan minat untuk menambah sokongan LIMIT asli kepada SQL Server dalam keluaran akan datang.
Atas ialah kandungan terperinci Bagaimana untuk Meniru Klausa LIMIT MySQL dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!