SQL TOP / LIMIT / ROWNUM
SQL SELECT TOP bandi
Qaytariladigan yozuvlar sonini LIMIT uchun SELECT TOP bandi ishlatiladi.
SELECT TOP bandi minglab yozuvlarga ega katta jadvallarda juda foydalidir. Katta hajmdagi ma’lumotlarni bir vaqtda qaytarish tizim unumdorligiga ta’sir qilishi mumkin.
Quyidagi SQL "Customers" jadvalining faqat dastlabki 3 ta yozuvini tanlaydi:
Misol
SELECT Customers jadvalining faqat dastlabki 3 ta yozuvi:
SELECT TOP 3 * FROM Customers;
O‘zingiz sinab ko‘ring »
Eslatma: Barcha ma’lumotlar bazasi tizimlari ham SELECT TOP bandini qo‘llab-quvvatlamaydi. MySQL cheklangan miqdordagi yozuvlarni tanlash uchun LIMIT bandini qo‘llab-quvvatlaydi, Oracle esa FETCH FIRST n ROWS ONLY dan foydalanadi.
SQL Server / MS Access uchun sintaksis
SELECT TOP number|percent column_name(s) FROM table_nameWHERE condition;
MySQL uchun sintaksis
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
Oracle 12+ uchun sintaksis
SELECT column_name(s)
FROM table_name
ORDER BY
column_name(s)
FETCH FIRST number ROWS ONLY;
Demo ma’lumotlar bazasi
Quyida misollarda foydalanilgan Customers jadvalidan tanlanma keltirilgan:
| 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 |
MySQL - LIMIT bandi
Quyidagi SQL MySQL uchun ekvivalent misolni ko‘rsatadi:
Misol
SELECT Customers jadvalining dastlabki 3 ta yozuvi:
SELECT * FROM Customers
LIMIT 3;
O‘zingiz sinab ko‘ring »
Oracle - FETCH FIRST bandi
Quyidagi SQL Oracle uchun ekvivalent misolni ko‘rsatadi:
Misol
SELECT Customers jadvalining dastlabki 3 ta yozuvi:
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
SQL TOP PERCENT Misol
Bu yerda biz foiz sintaksisi bilan SELECT TOP bandidan foydalanamiz.
Quyidagi SQL "Customers" jadvalidagi yozuvlarning birinchi 50% qismini tanlaydi (SQL Server/MS Access uchun):
Quyidagi SQL Oracle uchun ekvivalent misolni ko‘rsatadi:
Misol
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
SELECT TOP WHERE bilan
Quyidagi SQL "Customers" jadvalidan Country qiymati "Germany" bo‘lgan dastlabki uchta yozuvni tanlaydi (SQL Server/MS Access uchun):
Quyidagi SQL MySQL uchun ekvivalent misolni ko‘rsatadi:
Quyidagi SQL Oracle uchun ekvivalent misolni ko‘rsatadi:
Misol
SELECT * FROM Customers
WHERE Country = 'Germany'
FETCH FIRST 3 ROWS ONLY;
SELECT TOP va ORDER BY
Natijani saralamoqchi bo‘lganingizda ORDER BY kalit so‘zini qo‘shing va saralangan natijaning dastlabki 3 ta yozuvini qaytaring.
SQL Server va MS Access uchun:
Misol
Natijani CustomerName bo‘yicha alifbo tartibida teskari tartiblang va dastlabki 3 ta yozuvni qaytaring:
SELECT TOP 3 * FROM Customers
ORDER BY CustomerName DESC;
O‘zingiz sinab ko‘ring »
Quyidagi SQL MySQL uchun ekvivalent misolni ko‘rsatadi:
Quyidagi SQL Oracle uchun ekvivalent misolni ko‘rsatadi:
Misol
SELECT * FROM Customers
ORDER BY CustomerName DESC
FETCH FIRST 3 ROWS ONLY;
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
