
دستور select top در SQL
از دستور SELECT TOP در SQL برای تعیین تعداد رکورد های بازگشتی استفاده می شود.
دستور SELECT TOP برای جداول بزرگ با تعداد هزاران رکورد خیلی مفید است.
بازگشت تعداد زیادی رکورد می تواند بر عملکرد ، سرعت و کیفیت سرور تأثیر گذار باشد.
نکته مهم: همه سیستم های پایگاه داده از دستور SELECT TOP
پشتیبانی نمی کنند ، MySQL از شرط LIMIT
برای انتخاب تعداد محدودی رکورد پشتیبانی می کند ، در حالی که اوراکل از 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;
نحوه استفاده در Oracle قدیمی
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;
مثال برای دستورات TOP و LIMIT و FETCH FIRST در SQL
دستور SQL زیر سه رکورد اول را از جدول "Customers"
انتخاب می کند (برای 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;
مثال برای دستور TOP PERCENT در SQL
دستور SQL زیر 50٪ اول رکورد ها را از جدول "Customers"
انتخاب می کند (برای SQL Server/MS Access) :
SELECT TOP 50 PERCENT * FROM Customers;
دستور SQL زیر مثال بالا را مشابه برای Oracle نشان می دهد:
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
نحوه اضافه کردن شرط WHERE
دستور SQL زیر سه رکورد اول را از جدول "Customers"
انتخاب می کند در صورتی که ستون Country یا کشور آن برابر با "Germany"
باشد (برای 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;
آیا این مطلب برای شما مفید بود ؟
دو چيز ناپايدار
و درود خدا بر او، فرمود: سزاوار نيست كه بنده خدا به دو خصلت اعتماد كنند: تندرستى، و توانگرى، زيرا در تندرستى ناگاه او را بيمار بينى، و در توانگرى ناگاه او را تهيدست.
حکمت 426 نهج البلاغه