0
A
回答
6
select min(ID) as ID,
Val,
stuff((select ','+Cat
from Table2 as T2
where T1.Val = T2.Val
for xml path(''), type).value('.', 'nvarchar(max)'), 1, 1, '') as Cat
from Table2 as T1
group by Val
order by ID
+0
WOW。這很讓人佩服。它不需要我來解析它,但它可以工作,內聯,不需要clr,也不需要標量函數。現在我知道SQL小提琴。 Twofer! – GrayFox374
0
DECLARE @Table1 TABLE
(
id INT
,Val VARCHAR(100)
)
DECLARE @Table2 TABLE
(
id INT
,Val VARCHAR(100)
,Cat VARCHAR(100)
)
INSERT INTO @Table1
VALUES(1,'XYZ')
INSERT INTO @Table1
VALUES(2,'abc')
INSERT INTO @Table2
VALUES(1,'XYZ','a')
INSERT INTO @Table2
VALUES(1,'abc','e')
INSERT INTO @Table2
VALUES(1,'XYZ','b')
INSERT INTO @Table2
VALUES(1,'XYZ','f')
INSERT INTO @Table2
VALUES(1,'abc','g')
SELECT t1.id,t1.Val ,(SELECT STUFF((SELECT ',' + cat FROM @Table2 t2 WHERE t2.Val = t1.val FOR XML PATH('')),1,1,''))
FROM @Table1 t1
0
可以定義CLR用戶定義的聚合做到這一點。我發佈了這樣的解決方案的詳細描述,作爲對另一個問題的答案 - TSQL Comma Separation。在那裏你還可以找到一篇博客文章的鏈接,討論在開發CLR聚合時可能遇到的問題。
後您部署自定義彙總到服務器(我命名的函數Concat
但你可以有不同的名稱),你將能夠獲得所需要的結果用下面的查詢:
SELECT Val, dbo.Concat(Cat)
FROM Table2
GROUP BY Val
相關問題
- 1. 在SQL Server 2005中將多個列作爲單逗號分隔的行返回
- 2. 如何逗號顯示SQL Server表中的值分隔
- 3. 多行到一個逗號分隔值
- 4. T-SQL - 在一行上有多個以逗號分隔的值
- 5. 逗號分隔值插入在SQL Server 2005中
- 6. 如何逗號分隔的多個行
- 7. 逗號分隔值在MySQL中多行
- 8. 如何以逗號分隔顯示單行中的多條記錄
- 9. 在Sql Server中將列中的逗號分隔值拆分爲多行
- 10. 如何將多行數據顯示爲逗號分隔的單個單元格
- 11. 如何顯示以逗號或分號分隔的值列表
- 12. 如何在SQL Server中將行數據逗號分隔
- 13. 逗號在一列分隔值 - SQL SERVER
- 14. 在SQL Server替換逗號分隔值
- 15. 顯示在SQL Server 2005中多行的結果爲單行
- 16. 如何在新行中分隔R中的逗號分隔值?
- 17. 如何將多行組合到SQL Server 2005中以逗號分隔的列表中?
- 18. 加入查詢結果以逗號分隔值的單行
- 19. 根據SQL Server中的列值(由逗號分隔)創建多個行嗎?
- 20. SQL單行到多行用逗號分隔
- 21. 在SQL Server中的逗號分隔colums
- 22. 拆分逗號分隔值代入行與SQL Server
- 23. 如何逗號分隔的多個行從SQL查詢
- 24. 以逗號分隔的新行顯示每組3個數字
- 25. SQL Server:選擇包含多個逗號分隔值的列的行
- 26. 轉換逗號分隔列值的行
- 27. 如何在網格中逐個顯示逗號分隔值
- 28. 如何將多行組合到SQL Server中的逗號分隔列表中?
- 29. 如何更新多行由逗號在SQL Server中分離
- 30. SQL逗號分隔值
看到下面的鏈接https://stackoverflow.com/questions/21760969/multiple-rows-to-one-comma-separated-value –