Cara Memilih Baris ke-n
dalam Tabel Database SQL
Ketika bekerja dengan data di database, Anda mungkin menemukan kebutuhan untuk memilih item tertentu, seperti baris ke-n
dalam tabel. Namun, berbagai database memiliki cara yang sedikit berbeda untuk mencapai hal ini, dan mempelajari cara melakukannya di berbagai sistem SQL dapat sangat berguna. Dalam posting blog ini, kita akan menjelajahi pendekatan yang agnostik database serta solusi spesifik untuk database SQL populer seperti SQL Server, MySQL, PostgreSQL, SQLite, dan Oracle.
Pendekatan Agnostik Database
Sebelum menyelami rincian masing-masing database, mari kita mulai dengan metode yang dapat dianggap lebih universal. Meskipun beberapa fitur mungkin tidak didukung di semua platform SQL, ada strategi umum yang membuat pemilihan baris ke-n
menjadi lebih sederhana.
Menggunakan LIMIT dan OFFSET (PostgreSQL & MySQL)
Untuk database seperti PostgreSQL dan MySQL, Anda dapat memanfaatkan sintaks SQL berikut:
SELECT ... LIMIT y OFFSET x
- LIMIT menentukan berapa banyak baris yang ingin Anda ambil.
- OFFSET menentukan dari titik mana Anda ingin mulai mengambil baris.
Jadi, sebagai contoh, untuk memilih baris ke-10, Anda akan melakukan:
SELECT * FROM namatabel LIMIT 1 OFFSET 9;
Sintaks ini sangat berguna untuk mempaginate data atau, seperti dalam kasus kita, mengambil baris tertentu.
Solusi Database Spesifik
SQL Server
Dengan SQL Server, terutama versi sebelum SQL Server 2012, Anda dapat memanfaatkan fungsi jendela untuk mencapai hasil serupa. Berikut cara menggunakan contoh umum:
WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders
)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000;
- ROW_NUMBER() menghasilkan nomor berurutan untuk baris dalam hasil berdasarkan urutan yang ditentukan.
- Sesuaikan
WHERE RowNumber = 1000000
untuk menentukan baris mana yang ingin diambil.
PostgreSQL dan SQLite (Versi 3.25.0+)
Mulai dari PostgreSQL 8.4, fungsi jendela standar didukung, yang memungkinkan Anda menggunakan pendekatan yang serupa dengan yang ada di SQL Server:
SELECT * FROM (
SELECT ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber, columns
FROM namatabel
) AS foo
WHERE rownumber <= n;
- Ganti
n
dengan nomor baris yang diinginkan. Struktur ini masih akan berfungsi secara efektif di SQLite sejak versi 3.25.0.
Oracle dan DB2
Untuk Oracle dan DB2, keduanya juga mendukung fungsi pemisahan. Sintaksnya mirip dengan PostgreSQL:
SELECT * FROM (
SELECT ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber, columns
FROM namatabel
) AS foo
WHERE rownumber <= n;
Penggunaan ROW_NUMBER()
memastikan Anda dapat mengakses baris tertentu berdasarkan urutan yang Anda tentukan.
Kesimpulan
Memilih baris ke-n
dari database SQL adalah tugas umum yang dapat didekati dengan berbagai cara tergantung pada database yang digunakan. Memahami sintaks dan metode yang berbeda memungkinkan Anda bekerja lebih efektif di berbagai sistem. Baik Anda melakukan kueri di SQL Server, MySQL, PostgreSQL, SQLite, atau Oracle, Anda sekarang memiliki alat yang diperlukan untuk mengambil baris yang tepat yang Anda butuhkan.
Untuk pembacaan lebih lanjut, Anda selalu dapat memeriksa rincian lebih rumit tentang teknik kueri SQL di website Troels Arvin. Selamat melakukan kueri!