کوئری نویسی در SQL Server 2022 بخش دوم
دستور 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 ایجاد خواهد شد.
نحوه صدا زدن این فانگشن به صورت زیر می باشد. به عنوان مثال دوازدهمین کالای گران شرکت را نمایش دهید :
Select * from [dbo].[UDF_Expensive](12) |
گردآورنده: مهندس غلامحسین عبادی
مطالب زیر را حتما بخوانید
-
حمله های تزریق SQL
1.67k بازدید
-
داده کاوی چیست؟ صفر تا صد فرایند داده کاوی
1.92k بازدید
-
مدیریت پیکربندی در DevOps به چه معناست و چه کاربردی دارد؟
1.53k بازدید
-
روشهای بهبود عملکرد کوئری در SQL
5.48k بازدید
-
چرا باید در دوره آموزشی CDCP شرکت کنیم؟
39 بازدید
-
مانیتورینگ دواپس چیست و چه اهمیتی دارد؟
76 بازدید
دیدگاهتان را بنویسید