SQL TOP, LIMIT, FETCH FIRST atau ROWNUM Clause
Klausa TOP SELECT SQL
Klausa SELECT TOP
digunakan untuk menentukan jumlah record yang akan dikembalikan.
Klausa SELECT TOP
ini berguna pada tabel besar dengan ribuan catatan. Mengembalikan sejumlah besar catatan dapat memengaruhi kinerja.
Catatan: Tidak semua sistem database mendukung
SELECT TOP
klausa. MySQL mendukung LIMIT
klausa untuk memilih sejumlah catatan, sementara Oracle menggunakan dan .
FETCH FIRST n ROWS ONLY
ROWNUM
Sintaks SQL Server / MS Access:
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
Sintaks MySQL:
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
Sintaks Oracle 12:
SELECT column_name(s)
FROM table_name
ORDER BY
column_name(s)
FETCH FIRST number ROWS ONLY;
Sintaks Oracle yang Lebih Lama:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
Sintaks Oracle Lama (dengan ORDER BY):
SELECT *
FROM (SELECT column_name(s) FROM table_name
ORDER BY column_name(s))
WHERE ROWNUM <= number;
Basis Data Demo
Di bawah ini adalah pilihan dari tabel "Pelanggan" di database sampel Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Contoh SQL TOP, LIMIT dan FETCH FIRST
Pernyataan SQL berikut memilih tiga catatan pertama dari tabel "Pelanggan" (untuk SQL Server/MS Access):
Contoh
SELECT TOP 3 * FROM Customers;
Pernyataan SQL berikut menunjukkan contoh yang setara untuk MySQL:
Contoh
SELECT * FROM Customers
LIMIT 3;
Pernyataan SQL berikut menunjukkan contoh yang setara untuk Oracle:
Contoh
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
Contoh PERSEN TERATAS SQL
Pernyataan SQL berikut memilih 50% pertama dari catatan dari tabel "Pelanggan" (untuk SQL Server/MS Access):
Contoh
SELECT TOP 50 PERCENT * FROM Customers;
Pernyataan SQL berikut menunjukkan contoh yang setara untuk Oracle:
Contoh
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
TAMBAHKAN KLAUSUL DI MANA
Pernyataan SQL berikut memilih tiga catatan pertama dari tabel "Pelanggan", di mana negaranya adalah "Jerman" (untuk SQL Server/MS Access):
Contoh
SELECT TOP 3 * FROM Customers
WHERE Country='Germany';
Pernyataan SQL berikut menunjukkan contoh yang setara untuk MySQL:
Contoh
SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;
Pernyataan SQL berikut menunjukkan contoh yang setara untuk Oracle:
Contoh
SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;