SQL Server: Mengenal OFFSET FETCH

Jika kita mencari fungsi atau sintaks untuk membuat query SQL Server yang mirip-mirip seperti limit dalam MySQL maka OFFSET FETCH adalah jawabannya.

OFFSET FETCH berguna untuk membatasi jumlah baris/row yang ingin ditampilkan.

Sintaks yang digunakan:

....
ORDER BY column_list [ASC |DESC]
OFFSET jumlah_skip_row {ROW | ROWS}
FETCH {FIRST | NEXT} jumlah row tampil {ROW | ROWS} ONLY

Pada sintaks diatas:

  • OFFSET menentukan jumlah row yang dilewat agar tidak ditampilkan.
  • FETCH menentukan jumlah row yang ditampilkan dihitung mulai dari row setelah jumah row yang dilewat.
  • Jika ingin menggunakan sintaks pembatasan ini maka OFFSET harus ada sementara FETCH bersifat opsional
  • OFFSET dan FETCH clause harus selalu dibarengi ORDER BY clause, karena kalau tidak akan jadi error.

Untuk lebih jelasnya mari kita lihat ilustrasi gambar di bawah ini:


Tabel category berisikan data seperti gambar diatas akan kita gunakan sebagai contoh. Pertama kita hanya akan menggunakan OFFSET untuk melewati 3 baris pertama.

Query:

SELECT categorycode, categoryname 
FROM [dbo].[category]
ORDER BY categorycode
OFFSET 3 ROWS

Hasilnya:


Kemudian kita coba lagi melewati 3 baris pertama dan hanya menampilkan 4 baris berikutnya, dengan Query:

SELECT categorycode, categoryname 
FROM [dbo].[category]
ORDER BY categorycode
OFFSET 3 ROWS
FETCH FIRST 4 ROWS ONLY

Hasilnya:


Post a Comment

0 Comments