SQL TOP / LIMIT / ROWNUM


baham ko'ring

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):

Misol

SELECT TOP 50 PERCENT * FROM Customers;
O‘zingiz sinab ko‘ring »

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):

Misol

SELECT TOP 3 * FROM Customers
WHERE Country = 'Germany';
O‘zingiz sinab ko‘ring »

Quyidagi SQL MySQL uchun ekvivalent misolni ko‘rsatadi:

Misol

SELECT * FROM Customers
WHERE Country = 'Germany'
LIMIT 3;
O‘zingiz sinab ko‘ring »

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:

Misol

SELECT * FROM Customers
ORDER BY CustomerName DESC
LIMIT 3;
O‘zingiz sinab ko‘ring »

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!