يتم استخدام التعبير SELECT TOP لتحديد عدد السجلات المراد تحديدها.
يعد SQL SELECT TOP مفيدًا للجداول الكبيرة التي تحتوي على آلاف السجلات، حيث أن إرجاع عدد كبير من السجلات يمكن أن يؤثر على أداء النظام.
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number
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
SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number
ما يلي هو نموذج من جدول "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. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | 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 التالية السجلات الثلاثة الأولى من الجدول "Customers" (لـ SQL Server/MS Access):
SELECT TOP 3 *
FROM Customers
تعرض عبارة SQL التالية مثالًا مكافئًا لـ MySQL:
Run SQLSELECT *
FROM Customers
LIMIT 3
تعرض عبارة SQL التالية مثالًا مكافئًا لـ Oracle:
SELECT *
FROM Customers
FETCH FIRST 3 ROWS ONLY
تحدد عبارة SQL التالية أول 50% من السجلات من الجدول "Customers" (لـ SQL Server/MS Access):
SELECT TOP 50 PERCENT *
FROM Customers
تعرض عبارة SQL التالية مثالًا مكافئًا لـ Oracle:
SELECT *
FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY
تحدد عبارة SQL التالية السجلات الثلاثة الأولى من الجدول "Customers" حيث تكون الدولة "Germany" (لـ SQL Server/MS Access):
SELECT TOP 3 *
FROM Customers
WHERE Country = 'Germany'
تعرض عبارة SQL التالية مثالًا مكافئًا لـ MySQL:
Run SQLSELECT *
FROM Customers
WHERE Country = 'Germany'
LIMIT 3
تعرض عبارة SQL التالية مثالًا مكافئًا لـ Oracle:
SELECT *
FROM Customers
WHERE Country = 'Germany'
FETCH FIRST 3 ROWS ONLY