SQL TOP, LIMIT, FETCH FIRST або ROWNUM Пропозиція
SQL Пропозиція SELECT TOP
Пропозиція SELECT TOP
використовується для визначення кількості записів для повернення.
Пропозиція SELECT TOP
корисна для великих таблиць із тисячами записів. Повернення великої кількості записів може вплинути на продуктивність.
Примітка: Не всі системи баз даних підтримують пропозицію SELECT TOP
. MySQL підтримує пропозицію LIMIT
для вибору обмеженої кількості записів, тоді як Oracle використовує FETCH FIRST n ROWS ONLY
та ROWNUM
.
SQL Server / MS Access Синтаксис:
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE умова;
MySQL Синтаксис:
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT число;
Oracle 12 Синтаксис:
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST число ROWS ONLY;
Старіший Oracle Синтаксис:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= число;
Старіший Oracle Синтаксис (із ORDER BY):
SELECT *
FROM (SELECT column_name(s) FROM table_nameORDER BY column_name(s))
WHERE ROWNUM <= число;
Демо бази даних
Нижче наведено вибірку з таблиці "Customers" зразка бази даних 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 |
SQL TOP, LIMIT та FETCH FIRST Приклади
Наступна SQL-інструкція вибирає перші три записи з таблиці "Customers" (для SQL Server/MS Access):
Наступна SQL-інструкція показує еквівалентний приклад для MySQL:
Наступна SQL-інструкція показує еквівалентний приклад для Oracle:
Приклад
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
SQL TOP PERCENT Приклад
Наступна SQL-інструкція вибирає перші 50% записів із таблиці "Customers" (для SQL Server/MS Access):
Наступна SQL-інструкція показує еквівалентний приклад для Oracle:
Приклад
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
Додати WHERE CLAUSE
Наступна SQL-інструкція вибирає перші три записи з таблиці "Customers", де країною є "Germany" (для SQL Server/MS Access):
Наступна SQL-інструкція показує еквівалентний приклад для MySQL:
Наступна SQL-інструкція показує еквівалентний приклад для Oracle:
Приклад
SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;