جملة 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 condition;
بناء جملة MySQL:
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
بنية Oracle 12:
SELECT column_name(s)
FROM table_name
ORDER BY
column_name(s)
FETCH FIRST number ROWS ONLY;
أقدم بنية أوراكل:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
أقدم صيغة Oracle (مع ORDER BY):
SELECT *
FROM (SELECT column_name(s) FROM table_name
ORDER BY column_name(s))
WHERE ROWNUM <= number;
قاعدة بيانات تجريبية
يوجد أدناه تحديد من جدول "العملاء" في نموذج قاعدة بيانات 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 التالية السجلات الثلاثة الأولى من جدول "العملاء" (لـ SQL Server / MS Access):
مثال
SELECT TOP 3 * FROM Customers;
تُظهر جملة SQL التالية المثال المكافئ لـ MySQL:
مثال
SELECT * FROM Customers
LIMIT 3;
تُظهر جملة SQL التالية المثال المكافئ لـ Oracle:
مثال
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
مثال على SQL TOP PERCENT
تحدد عبارة SQL التالية أول 50٪ من السجلات من جدول "العملاء" (لـ SQL Server / MS Access):
مثال
SELECT TOP 50 PERCENT * FROM Customers;
تُظهر جملة SQL التالية المثال المكافئ لـ Oracle:
مثال
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
أضف شرط المكان
تحدد عبارة SQL التالية السجلات الثلاثة الأولى من جدول "العملاء" ، حيث تكون الدولة "ألمانيا" (لـ SQL Server / MS Access):
مثال
SELECT TOP 3 * FROM Customers
WHERE Country='Germany';
تُظهر جملة SQL التالية المثال المكافئ لـ MySQL:
مثال
SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;
تُظهر جملة SQL التالية المثال المكافئ لـ Oracle:
مثال
SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;