Pendapatan Data Cekap dalam Pelayan SQL: Mengendalikan Offset Baris
Banyak aplikasi pangkalan data memerlukan mendapatkan semula data bermula dari titik tertentu, fungsi yang sering dicapai menggunakan klausa OFFSET
dan LIMIT
. Walau bagaimanapun, SQL Server tidak menyokong klausa ini secara langsung. Artikel ini meneroka penyelesaian yang berkesan untuk melaksanakan offset baris dalam SQL Server.
Strategi untuk Melaksanakan Offset Baris
Ketiadaan OFFSET
dan LIMIT
memerlukan kaedah alternatif. Penyelesaian biasa dan cekap menggunakan fungsi ROW_NUMBER()
dalam subkueri.
Menggunakan ROW_NUMBER()
dan Subqueries (SQL Server 2005 dan kemudian):
Pertanyaan berikut menunjukkan cara untuk mendapatkan semula data dengan offset baris menggunakan ROW_NUMBER()
dan subkueri (juga dikenali sebagai jadual terbitan) dalam SQL Server 2005 dan versi berikutnya:
<code class="language-sql">SELECT col1, col2 FROM ( SELECT col1, col2, ROW_NUMBER() OVER (ORDER BY ID) AS RowNum FROM MyTable ) AS RankedData WHERE RowNum BETWEEN @startRow AND @endRow;</code>
Pertanyaan ini mula-mula memberikan nombor baris pada setiap baris dalam MyTable
menggunakan ROW_NUMBER()
. Pertanyaan luar kemudian menapis set data berperingkat ini, memilih hanya baris dalam julat @startRow
dan @endRow
yang ditentukan.
Mengatasi Versi Pelayan SQL Lama (SQL Server 2000)
Untuk SQL Server 2000, mencapai offset baris memerlukan teknik yang lebih rumit. Rujuk sumber khusus untuk mendapatkan penjelasan terperinci tentang kaedah ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Offset Baris dalam Pelayan SQL Tanpa OFFSET dan LIMIT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!