دستور select top در SQL

  /  SQL   /  دستور 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;
5/5 - (1 امتیاز)

برای دسترسی به آموزش های بیشتر و ویدیو های من ، کلمه کلیدی متین برونسی را داخل گوگل سرچ کنید.

ارسال یک نظر