Klauzula SQL - TOP, LIMIT lub ROWNUM

SQL TOP Klauzula służy do pobrania z tabeli liczby TOP N lub rekordów X procent.

Note- Żadne bazy danych nie obsługują klauzuli TOP. Na przykład MySQL obsługuje rozszerzenieLIMIT klauzula do pobierania ograniczonej liczby rekordów, podczas gdy Oracle używa ROWNUM polecenie pobrania ograniczonej liczby rekordów.

Składnia

Podstawowa składnia klauzuli TOP z instrukcją SELECT byłaby następująca.

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE [condition]

Przykład

Rozważ tabelę CUSTOMERS zawierającą następujące rekordy -

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

Poniższe zapytanie jest przykładem na serwerze SQL, który pobrałby 3 pierwsze rekordy z tabeli CUSTOMERS.

SQL> SELECT TOP 3 * FROM CUSTOMERS;

Dałoby to następujący wynik -

+----+---------+-----+-----------+---------+
| ID | NAME    | AGE | ADDRESS   | SALARY  |
+----+---------+-----+-----------+---------+
|  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan  |  25 | Delhi     | 1500.00 |
|  3 | kaushik |  23 | Kota      | 2000.00 |
+----+---------+-----+-----------+---------+

Jeśli używasz serwera MySQL, oto równoważny przykład -

SQL> SELECT * FROM CUSTOMERS
LIMIT 3;

Dałoby to następujący wynik -

+----+---------+-----+-----------+---------+
| ID | NAME    | AGE | ADDRESS   | SALARY  |
+----+---------+-----+-----------+---------+
|  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan  |  25 | Delhi     | 1500.00 |
|  3 | kaushik |  23 | Kota      | 2000.00 |
+----+---------+-----+-----------+---------+

Jeśli używasz serwera Oracle, poniższy blok kodu zawiera równoważny przykład.

SQL> SELECT * FROM CUSTOMERS
WHERE ROWNUM <= 3;

Dałoby to następujący wynik -

+----+---------+-----+-----------+---------+
| ID | NAME    | AGE | ADDRESS   | SALARY  |
+----+---------+-----+-----------+---------+
|  1 | Ramesh  |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan  |  25 | Delhi     | 1500.00 |
|  3 | kaushik |  23 | Kota      | 2000.00 |
+----+---------+-----+-----------+---------+