Query untuk paging pada Database Oracle
19 Maret 2014 2 Komentar
Pada tulisan sebelumnya telah disebutkan tentang perintah query untuk paging pada database mysql maka berikut ini akan disebutkan perintah query untuk paging pada database oracle.
Berbeda dengan MySQL yang memiliki perintah “limit”, pada database oracle tidak ada perintah langsung (yang saya tau :D) untuk memanggil dan membatasi baris tertentu saja. Ada perintah rownum tetapi perintah ini hanya membatasi jumlah row yng ditampilkan saja dan tidak bisa digunakan untuk membatasi baris sekian hingga sekian.
Untuk itu, perlu ada perintah untuk mendifinisikan suatu informasi tentang baris-baris yang sedang dipanggil, yaitu dengan menggunakan perintah row_num().
Contoh sebagai berikut:
select * from (select row_number() over (order by nama asc) baris, a.* from pegawai order by nama asc) where baris between 1 and 50
artinya, kita menambahkan satu field atau kolom bernama “baris” yang berisi nomor urut data yang sedang dipanggil baru kemudian kita pilih antara baris ke 1 sampai dengan baris ke 50.
Contoh kedua:
select * from (select row_number() over (order by nama asc) baris, a.* from pegawai order by nama asc) where baris between 51 and 100
artinya, kita mengambil baris ke 51 sampai dengan baris ke 100, dan begitu seterusnya.
Demikian, Semoga Bermanfaat.
saya sudah coba, tapi pagingnya tidak berfungsi, hanya membatasi data yang tampil.
apakah ada cara lain lagi? terima kasih
Memang benar fungsi query ini untuk membatasi data yang ditampilkan. Tinggal menyesuaikan di script webnya bagian (halaman) ke berapa yang akan ditampilkan, dengan mengganti nilai angka1 dan angka2 pada bagian ini:
“where baris between angka1 and angka2”
Semoga bermanfaat..