Query untuk paging pada Database Oracle

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.

2 Responses to Query untuk paging pada Database Oracle

  1. wiwi says:

    saya sudah coba, tapi pagingnya tidak berfungsi, hanya membatasi data yang tampil.

    apakah ada cara lain lagi? terima kasih

    • abuibrahim11 says:

      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..

Tinggalkan komentar