دانش متفرقه TSQL

-استفاده از ROWS 3 PRECEDING در Windows Function  ها

گاهی مجموع (یا سایر موارد Windows Function ی) یک فیلد برای چند رکورد قبل (یابعد) مورد نیاز است. در این شرایط مشابه مثال زیر می توان عمل کرد.

sum(Components) over (partition by BranchKey order by RoundEffectTime ROWS 3 PRECEDING) as AggComponents

-برای نمایش تعداد رکوردهای یک DataSet از فرمان زیر استفاده کنید

CountRows("DataSetName")=

-در مثال قصد ایجاد 2 لیست از ایمیل آدرسهای zone با مقدار A و B را داریم. از ورژن SQL 2016 به بعد با استفاده از فانکشن STRING_AGG که در این مثال از آن استفاده شده است به راحتی و با سرعت مناسب قابل انجام است.

zone emailaddress

A Ali@yahoo.com

A Ahamd@yahoo.com

B Javad@yahoo.com

A Aria@yahoo.com



create table #emailList (zone varchar(10), emailaddress varchar(50))

insert #emailList values ('A', 'Ali@yahoo.com'),('A', 'Ahamd@yahoo.com'),('B', 'Javad@yahoo.com'),('A', 'Aria@yahoo.com')


 select zone, STRING_AGG(EmailAddress, ';') AS emails

 from #emailList

 group by zone

خروجی به شرح زیر خواهد بود:
zone emails
A Ali@yahoo.com;Ahamd@yahoo.com;Aria@yahoo.com
B Javad@yahoo.com