SQL TOP, LIMIT, FETCH FIRST of ROWNUM- klousule
Die SQL SELECT TOP-klousule
Die SELECT TOP
klousule word gebruik om die aantal rekords te spesifiseer wat teruggestuur moet word.
Die SELECT TOP
klousule is nuttig op groot tafels met duisende rekords. Om 'n groot aantal rekords terug te gee, kan prestasie beïnvloed.
Let wel: Nie alle databasisstelsels ondersteun die
SELECT TOP
klousule nie. MySQL ondersteun die LIMIT
klousule om 'n beperkte aantal rekords te kies, terwyl Oracle en .
FETCH FIRST n ROWS ONLY
ROWNUM
SQL Server / MS Access Sintaksis:
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
MySQL-sintaksis:
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
Oracle 12-sintaksis:
SELECT column_name(s)
FROM table_name
ORDER BY
column_name(s)
FETCH FIRST number ROWS ONLY;
Ouer Oracle-sintaksis:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
Ouer Oracle-sintaksis (met ORDER BY):
SELECT *
FROM (SELECT column_name(s) FROM table_name
ORDER BY column_name(s))
WHERE ROWNUM <= number;
Demo-databasis
Hieronder is 'n keuse uit die "Klante"-tabel in die Noordewind-voorbeelddatabasis:
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 |
SQL TOP, LIMIT en FETCH FIRST Voorbeelde
Die volgende SQL-stelling kies die eerste drie rekords uit die "Klante"-tabel (vir SQL Server/MS Access):
Voorbeeld
SELECT TOP 3 * FROM Customers;
Die volgende SQL-stelling toon die ekwivalente voorbeeld vir MySQL:
Voorbeeld
SELECT * FROM Customers
LIMIT 3;
Die volgende SQL-stelling toon die ekwivalente voorbeeld vir Oracle:
Voorbeeld
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
SQL TOPPERSENT Voorbeeld
Die volgende SQL-stelling kies die eerste 50% van die rekords uit die "Klante"-tabel (vir SQL Server/MS Access):
Voorbeeld
SELECT TOP 50 PERCENT * FROM Customers;
Die volgende SQL-stelling toon die ekwivalente voorbeeld vir Oracle:
Voorbeeld
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
VOEG 'n WAAR-KLOUSULE BY
Die volgende SQL-stelling kies die eerste drie rekords uit die "Klante"-tabel, waar die land "Duitsland" is (vir SQL Server/MS Access):
Voorbeeld
SELECT TOP 3 * FROM Customers
WHERE Country='Germany';
Die volgende SQL-stelling toon die ekwivalente voorbeeld vir MySQL:
Voorbeeld
SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;
Die volgende SQL-stelling toon die ekwivalente voorbeeld vir Oracle:
Voorbeeld
SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;