Apa Itu Paginasi?

Pagination adalah proses membagi data besar menjadi kumpulan data yang lebih kecil di halaman diskrit. Ini banyak digunakan dalam aplikasi web.

Bagaimana Pagination Bekerja di MS SQL Server?

Di MS SQL Serverkita dapat mencapai fungsionalitas pagination dengan menggunakan OFFSET dan FETCH klausa dengan ORDER BY di SELECT pernyataan.

  • OFFSET: Mewakili jumlah baris yang akan dilewati dari kumpulan hasil. Itu harus 0 atau lebih besar dari 0.
  • FETCH:Mewakili jumlah baris yang akan ditampilkan dalam hasil.

Poin Penting untuk Dipertimbangkan Saat Menggunakan OFFSET dan FETCH:

  • ORDER BY wajib digunakan OFFSET FETCH Ayat.
  • OFFSET adalah wajib dan FETCH adalah opsional.
  • TOP klausa tidak dapat digunakan dalam SELECT pernyataan dengan OFFSET FETCH.

Mari kita lihat contohnya:

Dalam contoh di bawah ini, OFFSET 0 dan FETCH NEXT 5 ROWS kip no rows dan kembalikan 5 baris berikutnya dalam kumpulan data, yang mana 5 baris pertama dalam kumpulan data.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY

OFFSET 0 dan FETCH 5 BARIS BERIKUTNYA

Dalam contoh di bawah ini, OFFSET 3 dan FETCH NEXT 5 ROWS berarti lewati 3 baris pertama dan kembalikan 5 baris berikutnya dalam kumpulan data.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 3 ROWS
FETCH NEXT 5 ROWS ONLY

OFFSET 3 dan FETCH 5 BARIS BERIKUTNYAPageNumberRowsOfPage

  • PageNumber — Mewakili nomor halaman
  • RowsOfPage — Mewakili jumlah baris pada halaman

Sekarang, untuk menghitung jumlah baris yang akan dilewati ketika kita pindah ke halaman berikutnya dengan rumus(@PageNumber-1) * @RowsOfPage sedang digunakan dalam OFFSETdan jumlah baris akan dikembalikan dalam FETCH.

Di Sini, PageNumber adalah 2 dan RowsOfPage adalah 5, yang berarti mengembalikan dataset untuk halaman nomor 2.

DECLARE @PageNumber AS INT
       ,@RowsOfPage AS INT

SET @PageNumber=2
SET @RowsOfPage=5

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey
OFFSET (@PageNumber-1) * @RowsOfPage ROWS
FETCH NEXT @RowsOfPage ROWS ONLY

OFFSET (@PageNumber-1) * @ RowsofPage dan FETCH NEXT @RowsOfPage ROWS

Kesimpulan

Dalam aplikasi waktu nyata, logika lengkap ini dapat ditulis dalam prosedur tersimpan yang dipanggil dengan mengklik tombol “Berikutnya” atau nomor halaman di aplikasi web untuk menampilkan kumpulan catatan pada halaman.

Semua Cara Pagination di MS SQL Server Menggunakan OFFSET dan FETCH [Simple] metode yang saya sebutkan bekerja dengan baik. Terima kasih telah membaca dan silakan beri komentar di bawah ini dengan pemikiran Anda tentang artikel ini dan bagikan signalfix.net dengan teman-temanmu.