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!