SQL TOP, LIMIT, FETCH FIRST of ROWNUM- clausule
De SQL SELECT TOP-clausule
De SELECT TOP
clausule wordt gebruikt om het aantal records op te geven dat moet worden geretourneerd.
De SELECT TOP
clausule is handig op grote tabellen met duizenden records. Het retourneren van een groot aantal records kan van invloed zijn op de prestaties.
Opmerking: niet alle databasesystemen ondersteunen de
SELECT TOP
clausule. MySQL ondersteunt de LIMIT
clausule om een beperkt aantal records te selecteren, terwijl Oracle en .
FETCH FIRST n ROWS ONLY
ROWNUM
SQL Server / MS Access-syntaxis:
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
MySQL-syntaxis:
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
Oracle 12-syntaxis:
SELECT column_name(s)
FROM table_name
ORDER BY
column_name(s)
FETCH FIRST number ROWS ONLY;
Oudere Oracle-syntaxis:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
Oudere Oracle-syntaxis (met ORDER BY):
SELECT *
FROM (SELECT column_name(s) FROM table_name
ORDER BY column_name(s))
WHERE ROWNUM <= number;
Demodatabase
Hieronder vindt u een selectie uit de tabel "Klanten" in de voorbeelddatabase van 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 |
Voorbeelden van SQL TOP, LIMIT en FETCH FIRST
De volgende SQL-instructie selecteert de eerste drie records uit de tabel "Klanten" (voor SQL Server/MS Access):
Voorbeeld
SELECT TOP 3 * FROM Customers;
De volgende SQL-instructie toont het equivalente voorbeeld voor MySQL:
Voorbeeld
SELECT * FROM Customers
LIMIT 3;
De volgende SQL-instructie toont het equivalente voorbeeld voor Oracle:
Voorbeeld
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
SQL TOP PERCENT Voorbeeld
De volgende SQL-instructie selecteert de eerste 50% van de records uit de tabel "Klanten" (voor SQL Server/MS Access):
Voorbeeld
SELECT TOP 50 PERCENT * FROM Customers;
De volgende SQL-instructie toont het equivalente voorbeeld voor Oracle:
Voorbeeld
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
EEN WAAR-CLAUSULE TOEVOEGEN
De volgende SQL-instructie selecteert de eerste drie records uit de tabel "Klanten", waarbij het land "Duitsland" is (voor SQL Server/MS Access):
Voorbeeld
SELECT TOP 3 * FROM Customers
WHERE Country='Germany';
De volgende SQL-instructie toont het equivalente voorbeeld voor MySQL:
Voorbeeld
SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;
De volgende SQL-instructie toont het equivalente voorbeeld voor Oracle:
Voorbeeld
SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;