دستور SELECT TOP
در دستور SELECT TOP برای انتخاب تعدادی رکورد مشخص بالای جدول را عمل میکند.
دستور SELECT TOP در جداول بزرگ با هزاران رکورد مفید است. بازگشت تعداد زیادی رکوردها می تواند بر عملکرد تاثیر بگذارد.
توجه: همه سیستم های پایگاه داده از دستور SELECT TOP حمایت نمی کنند. MySQL از شرط LIMIT برای انتخاب تعداد محدودی از رکوردها پشتیبانی می کند، در حالی که اوراکل از 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
SELECT column_name(s)
FROM table_name
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.
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
مثال TOP, LIMIT و ROWNUM
SELECT TOP 3 * FROM Customers;
3 رکورد انتخاب می شود.
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
دستور SQL زیر مثال معادل با استفاده از دستور LIMIT را نشان می دهد:
SELECT * FROM Customers LIMIT 3;
دستور SQL زیر مثال معادل با استفاده از دستور ROWNUMرا نشان می دهد:
SELECT * FROM Customers WHERE ROWNUM <= 3;
مثال TOP PERCENT
بیانیه SQL زیر اولین 50٪ رکوردها را از جدول " Customers " انتخاب می کند:
SELECT TOP 50 PERCENT * FROM Customers;
46 رکورد انتخاب شد. که چند رکورد به عنوان نمونه نمایش داده می شود.
اضافه کردن WHERE به دستور SELECT TOP
دستور SQL زیر اولین سه رکورد را از جدول " Customers" انتخاب می کند، جایی که کشور "آلمان" است:
SELECT TOP 3 * FROM Customers
WHERE Country='Germany'
3 رکورد انتخاب شد.
CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
1
Alfreds Futterkiste
Maria Anders
Obere Str. 57
Berlin
12209
Germany
6
Blauer See Delikatessen
Hanna Moos
Forsterstr. 57
Mannheim
68306
Germany
17
Drachenblut Delikatessend
Sven Ottlieb
Walserweg 21
Aachen
52066
Germany
دستور SQL زیر مثال معادل با استفاده از دستور LIMIT را نشان می دهد:
SELECT * FROM Customers WHERE Country='Germany' LIMIT 3;
دستور SQL زیر مثال معادل با استفاده از دستور ROWNUMرا نشان می دهد:
SELECT * FROM Customers WHERE Country='Germany' AND ROWNUM <= 3;
نظر شما
>