کوئری نویسی در SQL Server 2022

کوئری نویسی در SQL Server 2022 بخش دوم

دستور Top : به کمک این دستور می توانیم تعداد رکوردهای مورد نظر را نمایش دهیم. لازم به ذکر است که تمام RDBMS ها از دستور Top پشتیبانی نمی کنند....

فهرست مطالب

دستور Top :

به کمک این دستور می توانیم تعداد رکوردهای مورد نظر را نمایش دهیم.  لازم به ذکر است که تمام RDBMS ها از دستور Top پشتیبانی نمی کنند. به عنوان مثال در اوراکل به جای Top از دستور RowNum (به جای استفاده از دستور Top) استفاده می شود. همچنین لازم به ذکر است که در MySQL از دستور Limit (به جای Top) می توانیم استفاده نماییم.

دقت کنید که جلوی دستور Top می توان از عدد یا درصد یا متغییر استفاده نمود که در ادامه به مثال های متفاوت خواهیم پرداخت.

شکل کلی استفاده از دستور Top در SQL Server:

Select Top number | Percent Column(s)

From <TableName> | <ViewName> | <TVF> | <Derived Table> | <Synonym>

 

مثال : کوئری بنویسید که پنج رکورد اول جدول Products (در دیتابیس Northwind) را نمایش دهد ؟

Select Top 5 *

From Products

 

خروجی کوئری فوق به صورت زیر می باشد :

خروجی کوئری

تذکر مهم : در جداول بسیار بزرگ با هزاران رکورد و همچنین جداولی که شدیدا زیر بار بوده و دارای TPS بسیار بالایی هستند، توصیه می شود که هنگام استفاده از دستور Select حتما از Top استفاده نمایید.

مثال : کوئری بنویسید که شش کالای ارزان شرکت را نمایش دهد ؟

Select Top(6) *

From Products

Order by unitprice ASC

تذکر : می توانیم عدد 6 را مطابق مثال فوق داخل پرانتز نیز بنویسیم.

خروجی کوئری فوق به صورت زیر می باشد :

 

مثال : کوئری بنویسید که چهار کالای گران جدول Products را نمایش دهد ؟

Select Top 4 *

From Products

Order by unitprice Desc

خروجی کوئری فوق به صورت زیر می باشد

خروجی کوئری

تذکر مهم : می توانیم به جای عدد جلوی دستور Top از درصد هم استفاده نماییم :

مثال : کوئری بنویسید که که ده درصد رکوردهای جدول Products را نمایش دهد؟

Select Top 10 Percent *

From Products

خروجی کوئری فوق به صورت زیر می باشد : لازم به ذکر است که تعداد رکوردهای جدول Products ، 77 رکورد بود که ده درصد آن 8 رکورد می باشد که در زیر نمایش داده شده اند.

خروجی کوئری

مثال : کوئری بنویسید که شش رکورد اول جدول Products را با استفاده از تعریف متغیر نمایش دهد ؟

برای تعریف متغیر مطابق کوئری زیر از کلمه Declare استفاده می نماییم. در ضمن باید متغیر مطابق کوئری زیر داخل پرانتز استفاده شود.

Declare @C int=6

Select Top(@C) *

From Products

خروجی گزارش فوق به صورت زیر می باشد :

کوئری

مثال مهم : کوئری بنویسید که در یک فانگشن n امین کالای گران شرکت را نمایش دهد؟

Create Function UDF_Expensive(@C int)

Returns Table

Return

(

with T

AS

(

Select top(@C) * from products

order by UnitPrice desc

)

Select top 1 * from T

)

لازم به ذکر است که این فانگشن مطابق شکل زیر در قسمت Table-valued Functions ایجاد خواهد شد.

قسمت Table-valued Functions

نحوه صدا زدن این فانگشن به صورت زیر می باشد. به عنوان مثال دوازدهمین کالای گران شرکت را نمایش دهید :

Select * from [dbo].[UDF_Expensive](12)

گردآورنده: مهندس غلامحسین عبادی

دیدگاه‌های شما

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

مقالات مرتبط