آموزش زبان های برنامه نویسی

آموزش زبان های برنامه نویسی

آموزش انواع زبان های برنامه نویسی
آموزش زبان های برنامه نویسی

آموزش زبان های برنامه نویسی

آموزش انواع زبان های برنامه نویسی

تابع Lead و Lag در Sql Server

 تابع Lead و Lag  در Sql Server چست و چه کاربردی دارد؟


در زمان طراحی کوئری، خیلی از مواقع نیاز است که به سطرهای قبل یا بعد از سطر جاری دسترسی داشته باشیم. یکی از روش های موجود استفاده از تابع Row number بود که از نسخه 2005 اس کیو ال به بعد پشتیبانی می شود. اما از نسخه 2012 دو تابع مفید Lead وLag قابل استفاده هستند. 


تابع LAG : دستیابی به مقدار یک فیلد در سطرها قبل از سطر جاری


LAG (value_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause)



تابع LEAD : دستیابی به مقدار یک فیلد در سطرها بعد از سطر جار


LEAD (value_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause)


پارامترهای موجود در هر تابع به صورت زیر هستند:

value_expression : نام ستون مورد نظر

Offset: تعداد سطر بعد/قبل از سطر جاری

Default: مقدار پیش فرض در صورت خارج از رنج بودن Offset

query_partition_clause: گروهبندی روی ستون خاص


روش استفاده از تابع Lead را با یک مثال شرح خواهیم داد در این مثال قصد داریم کارمندان یک روز به تاریخ شروع پروژه بعدی را  اضافه کنیم.


SELECT *,
DATEADD(DAY, -1, LEAD(Emp_Startdate, 1,'01-Jan-2100') --کسر کردن یک روز از تاریخ رکورد بعدی
        OVER (PARTITION BY   Emp_Name ORDER BY   Emp_Startdate ASC))   AS EndDate
FROM   Employee



توضیحات کامل این مقاله را در سایت پروژه چی بخوانید