Paging tersuai Pelayan SQL: kaedah OFFSET/FETCH dan ROW_NUMBER()
Penomboran SQL digunakan untuk mendapatkan semula bilangan rekod yang terhad daripada set data dan biasanya digunakan untuk memaparkan hasil dalam halaman pada antara muka pengguna. Matlamat artikel ini adalah untuk melaksanakan fungsi paging untuk pertanyaan yang mendapatkan semula siaran dan entri terkininya.
SQL Server 2012 dan versi yang lebih baru boleh menggunakan kata kunci OFFSET
dan FETCH NEXT
untuk melaksanakan halaman. Pertanyaan berikut menunjukkan cara menggunakan kata kunci ini untuk penomboran:
<code class="language-sql">SELECT PostId FROM ( SELECT PostId, MAX(Datemade) AS LastDate FROM dbForumEntry GROUP BY PostId ) AS SubQueryAlias ORDER BY LastDate DESC OFFSET 10 ROWS -- 跳过10行 FETCH NEXT 10 ROWS ONLY; -- 获取接下来的10行</code>
Untuk versi sebelum SQL Server 2012, pendekatan berbeza diperlukan. Satu cara ialah menggunakan fungsi ROW_NUMBER()
untuk menetapkan nombor baris pada rekod dan kemudian gunakan klausa WHERE
untuk menapis baris yang dikehendaki:
<code class="language-sql">DECLARE @Start INT, @End INT; SELECT @Start = 10, @End = 20; WITH PostCTE AS ( SELECT PostId, MAX(Datemade) AS LastDate, ROW_NUMBER() OVER (ORDER BY PostId) AS RowNumber FROM dbForumEntry GROUP BY PostId ) SELECT PostId, LastDate FROM PostCTE WHERE RowNumber BETWEEN @Start AND @End; -- 获取第10到20行</code>
Pendekatan ini menyediakan cara untuk melaksanakan paging untuk versi SQL Server yang lebih awal, membolehkan anda mengawal bilangan rekod yang dipaparkan dan memudahkan navigasi set data yang besar.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penomboran Tersuai dalam Pelayan SQL Menggunakan OFFSET/FETCH dan ROW_NUMBER()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!