SQL Server
3.93K subscribers
19 photos
7 videos
36 files
167 links
حمید رضا صادقیان

🔴طراح‌ومشاوربانک های اطلاعاتیSQLSERVER
⚫️مدرس دوره های آموزشیDatabase

ارتباط با من:
@Hamidreza_Sadeghian

گروه تبادل نظر:
https://t.me/+uIc1qhv58gU0NWQ0
Download Telegram
سلام و عرض ادب خدمت دوستان عزیزم
امیدوارم حال همگی خوب باشه
یکی از مسائلی که اکثرا باهاش در کدنویسی ها درگیر هستیم بحث کنارهم قراردادن رشته هاست.
مثلا فرض کنید میخواهیم ستون نام یک جدول رو کنار هم قرارداده و با , اینهارو از هم جدا کنیم ورشته ای مثل رشته زیر رو تولید کنیم.

علی,حمید,محمد,داریوش,....

یکی از روشهای اینکار استفاده از 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