ورود

View Full Version : کوئری خروجی یک جدول در یک فیلد



پوریا_م
چهارشنبه 22 آذر 1396, 11:33 صبح
با سلام . جدولی به شکل عکس دارم . قصد دارم سلکتی بنویسم که تمام ردیف ها در یک فیلد ریخته شود . یعنی خروجی من یک فیلد شود با اطلاعات زیر :
1ali-2hasan-3reza-4amir-5hosein . در واقع به ازای هر ردیف ابتدا دو فیلد Id و Desc را با هم بصورت کاراکتری جمع کند ( در کنار هم قرار دهد ) سپس این 5 ردیف را پشت سر هم در یک فیلد با هر نامی نمایش دهد . لطفا اگر کسی از دوستان میدونه سلکتش رو بنویسه ( ترجیحا از کرسر استفاده نشه)
147245

sg.programmer
چهارشنبه 22 آذر 1396, 13:32 عصر
SELECT ID
,STUFF((SELECT ', ' + CAST(Value AS VARCHAR(10)) [text()]
FROM @Table1
WHERE ID = t.ID
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,' ') List_Output
FROM @Table1 t
GROUP BY ID




http://barnamenevis.org/showthread.php?544670-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B3%D8%AA%D9%88%D9%86-%D8%A8%D9%87-%D8%B3%D8%B7%D8%B1
اینجا یک نگاه بنداز

پوریا_م
پنج شنبه 23 آذر 1396, 07:33 صبح
SELECT ID
,STUFF((SELECT ', ' + CAST(Value AS VARCHAR(10)) [text()]
FROM @Table1
WHERE ID = t.ID
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,' ') List_Output
FROM @Table1 t
GROUP BY ID




http://barnamenevis.org/showthread.php?544670-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B3%D8%AA%D9%88%D9%86-%D8%A8%D9%87-%D8%B3%D8%B7%D8%B1
اینجا یک نگاه بنداز


--==============
سلام دوست عزیز . ضمن تشکر از کدی که دادید وقتی اون رو روی جدول خودم اجرا کردم دقیقا خروجیش همون حالت فعلی جدول شد و اطلاعات رو توی یک سطر نریخت !

sg.programmer
جمعه 24 آذر 1396, 01:34 صبح
آخه براساس ID های مشترک هست
شما اون ID را از برنامه حذف کنید

sg.programmer
جمعه 24 آذر 1396, 01:39 صبح
SELECT top 1 STUFF((SELECT ', ' + CAST([AZName] AS NVARCHAR(50)) [text()]
FROM [tbl_AZGroup]
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,' ') List_Output
FROM [tbl_AZGroup] t

این بر اساس جدول من هست فیلدها را تغییر بده

پوریا_م
شنبه 25 آذر 1396, 08:53 صبح
آخه براساس ID های مشترک هست
شما اون ID را از برنامه حذف کنید
--==================================
ممنون دوست عزیز اوکی شد

Iran58
سه شنبه 28 آذر 1396, 08:48 صبح
از تابع STRING_AGG استفاده نمایید که در sql2016 تعریف شده است