سلام و عرض ادب خدمت دوستان عزیزم
امیدوارم حال همگی خوب باشه
یکی از مسائلی که اکثرا باهاش در کدنویسی ها درگیر هستیم بحث کنارهم قراردادن رشته هاست.
مثلا فرض کنید میخواهیم ستون نام یک جدول رو کنار هم قرارداده و با , اینهارو از هم جدا کنیم ورشته ای مثل رشته زیر رو تولید کنیم.
علی,حمید,محمد,داریوش,....
یکی از روشهای اینکار استفاده از For Xml path بود که باید رشته رو تولید کرده و توسط دستورات stuff رشته درست بشه و اضافاتش حذف بشه.
در نسخه 2017 تابعی به نام String_Agg() اضافه شده که همین کار رو برای شما انجام میده.
این تابع دوتا ورودی میگیره که رشته و نوع جداکننده هست
و همچنین میتونید تعیین کنید رشته مورد نظر براساس چه فیلدی مرتب بشه.
به این مثال توجه کنید.:
SELECT town,
STRING_AGG (email, ';') WITHIN GROUP (ORDER BY email ASC) AS emails
FROM dbo.Employee
GROUP BY town;
نتیجه کوئری :
town emails
Seattle catherine0@adw.com;kim2@adw.com;syed0@adw.com
LA hazem0@adw.com;sam1@adw.com
در این مثال لیست ایمیلها به واسطه ; از هم جداشدند و براساس Town نیز دسته بندی شدند و خود ایمیلها نیز به صورت الفبا مرتب شدند.
امیدوارم این نکته براتون مفید واقع شده باشه.
ارادتمند شما
حمیدرضا صادقیان
ID:@Hamidreza_Sadeghian
Channel :@SQL_Server
#TSQL #For_XML_PAth #String_agg #Concatenates_String
امیدوارم حال همگی خوب باشه
یکی از مسائلی که اکثرا باهاش در کدنویسی ها درگیر هستیم بحث کنارهم قراردادن رشته هاست.
مثلا فرض کنید میخواهیم ستون نام یک جدول رو کنار هم قرارداده و با , اینهارو از هم جدا کنیم ورشته ای مثل رشته زیر رو تولید کنیم.
علی,حمید,محمد,داریوش,....
یکی از روشهای اینکار استفاده از For Xml path بود که باید رشته رو تولید کرده و توسط دستورات stuff رشته درست بشه و اضافاتش حذف بشه.
در نسخه 2017 تابعی به نام String_Agg() اضافه شده که همین کار رو برای شما انجام میده.
این تابع دوتا ورودی میگیره که رشته و نوع جداکننده هست
و همچنین میتونید تعیین کنید رشته مورد نظر براساس چه فیلدی مرتب بشه.
به این مثال توجه کنید.:
SELECT town,
STRING_AGG (email, ';') WITHIN GROUP (ORDER BY email ASC) AS emails
FROM dbo.Employee
GROUP BY town;
نتیجه کوئری :
town emails
Seattle catherine0@adw.com;kim2@adw.com;syed0@adw.com
LA hazem0@adw.com;sam1@adw.com
در این مثال لیست ایمیلها به واسطه ; از هم جداشدند و براساس Town نیز دسته بندی شدند و خود ایمیلها نیز به صورت الفبا مرتب شدند.
امیدوارم این نکته براتون مفید واقع شده باشه.
ارادتمند شما
حمیدرضا صادقیان
ID:@Hamidreza_Sadeghian
Channel :@SQL_Server
#TSQL #For_XML_PAth #String_agg #Concatenates_String