Sql 用递归函数模拟群函数
我有一张像这样的桌子Sql 用递归函数模拟群函数,sql,sql-server,function,recursion,sql-server-2012,Sql,Sql Server,Function,Recursion,Sql Server 2012,我有一张像这样的桌子 ID NAME 1 STALIN 2 MERWIN 1 AMALA 1 RAYON 我想把这本书作为一本书出版 ID NAME 1 STALIN,AMALA,RAYON 2 MERWIN 如何使用递归函数执行此操作您可以使用XML路径执行此操作 SELECT ID, NAME = STUFF((SELECT ', ' + NAME FROM your_table b WHERE b.ID = a.ID FOR XML
ID NAME
1 STALIN
2 MERWIN
1 AMALA
1 RAYON
我想把这本书作为一本书出版
ID NAME
1 STALIN,AMALA,RAYON
2 MERWIN
如何使用递归函数执行此操作您可以使用
XML路径执行此操作
SELECT ID, NAME =
STUFF((SELECT ', ' + NAME
FROM your_table b
WHERE b.ID = a.ID
FOR XML PATH('')), 1, 2, '')
FROM your_table a
GROUP BY ID
参见案例3。它解释了为什么在递归游标上使用XML路径。您可以使用
FOR XML path
来获得结果:
例如:
DECLARE @EXAMPLE TABLE (ID int, NAME nvarchar(10))
INSERT @EXAMPLE VALUES (1,'STALIN'),(2,'MERWIN'),(1,'AMALA'),(1,'RAYON')
SELECT
ID,
SUBSTRING(NAME,0,LEN(NAME)) AS NAME
FROM ( SELECT DISTINCT
T1.ID,
STUFF(( SELECT DISTINCT '' + t2.NAME + ','
FROM @EXAMPLE T2
WHERE T1.ID = T2.ID
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)')
,1,0,'') NAME
FROM @EXAMPLE t1) AS info
您正在使用哪些DBMS?标记您正在使用的DBMS(即
MySQL
,SQL Server
,等等)。是的。使用SQL Server递归函数SQL Server的哪个版本?@barbaros:我想使用递归函数来实现这一点。