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
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
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
FROM [dbo].[category]
ORDER BY categorycode
OFFSET 3 ROWS
FETCH FIRST 4 ROWS ONLY
Hasilnya:
0 Comments