niedziela, 2 września 2018

SQL - klauzula TOP, LIMIT lub ROWNUM


SQL - klauzula TOP, LIMIT lub ROWNUM

Klauzula SQL TOP służy do pobierania rekordów TOP N liczba lub X procent z tabeli.
Uwaga: Wszystkie bazy danych nie obsługują klauzuli TOP. Na przykład MySQL obsługuje klauzulę LIMIT w celu pobrania ograniczonej liczby rekordów, podczas gdy Oracle używa polecenia ROWNUM do pobrania ograniczonej liczby rekordów.
Składnia
Podstawowa składnia klauzuli TOP z instrukcją SELECT byłaby następująca.
SELECT TOP liczba|proceent nazwa_kolumny/kolumn
FROM nazwa_tabeli
WHERE [warunek]

Przykład
Rozważ tabelę KLIENCI zawierającą następujące rekordy -
+----+----------+-----+-----------+----------+
id,   nazwisko,   wiek,  adres,        pensja
'1', 'Zawadzki',  '32', 'Warszawska', '2000.00'
'2', 'Kowalczyk', '25', 'Sokratesa',  '1500.00'
'3', 'Kot',       '23', 'Darwina',    '3500.00'
'4', 'Kowalska',  '25', 'Modlińska',  '6500.00'
'5', 'Sapal',     '27', 'Wspólna',    '8500.00'
'6', 'Nowak',     '22', 'Nalewki',    '4500.00'
'7', 'Makowska',  '24', 'Piaseczno',  '10000.00'
+----+----------+-----+-----------+----------+
Następująca kwerenda jest przykładem na serwerze SQL, który pobiera 3 najlepsze rekordy z tabeli CUSTOMERS.
SQL> SELECT TOP 3 * FROM KLIENCI;
To dałoby następujący wynik -
+----+----------+-----+-----------+----------+
id,   nazwisko,   wiek,  adres,        pensja
'1', 'Zawadzki',  '32', 'Warszawska', '2000.00'
'2', 'Kowalczyk', '25', 'Sokratesa',  '1500.00'
'3', 'Kot',       '23', 'Darwina',    '3500.00'
+----+---------+-----+-----------+---------+
Jeśli używasz serwera MySQL, to tutaj jest równoważny przykład -
SQL> SELECT * FROM KLIENCI
LIMIT 3;
To dałoby następujący wynik -
+----+----------+-----+-----------+----------+
id,   nazwisko,   wiek,  adres,        pensja
'1', 'Zawadzki',  '32', 'Warszawska', '2000.00'
'2', 'Kowalczyk', '25', 'Sokratesa',  '1500.00'
'3', 'Kot',       '23', 'Darwina',    '3500.00'
+----+---------+-----+-----------+---------+
Jeśli korzystasz z serwera Oracle, poniższy blok kodu ma równoważny przykład.
SQL> SELECT * FROM KLIENCI
WHERE ROWNUM <= 3;
To dałoby 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 |
+----+---------+-----+-----------+---------+


Brak komentarzy:

Prześlij komentarz