我需要在SQL Server中编写类似group_concat的查询

时间:2017-05-29 21:39:08

标签: sql-server

如您所知,SQL Server与MySQL不同,没有Group_Concat函数,因此为此目的如何为SQL Server编写查询。

我使用Visual Studio创建了一个应用程序。应用程序具有Windows窗体。我能够保存,删除和更新数据库表中的记录。我需要显示某人的电子邮件地址,因此我需要使用类似Group_concat的方法。

你可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可能需要使用SQL Server< = 2016的xml路径和SQL Server 2017,SQL Azure等的String_Agg,请在下面找到示例聚合

CREATE TABLE dbo.[#Table1] (fullname VARCHAR(20),education VARCHAR(20))

INSERT INTO #Table1
SELECT 'john', 'harvard'    UNION ALL
SELECT 'john', 'mit'        UNION ALL
SELECT 'eric', 'mit'        UNION ALL
SELECT 'anna', 'yale'

--<=SQL Server 2016
Select fullname,  stuff ((
    select ',' + education from #Table1 where fullname = t.fullname 
    for xml path('')
    ),1,1,'') as education
From #Table1 t
Group by fullname

--For SQL Server 2017, SQL Azure, SQL PDW
Select fullname, string_agg(education,',') as Education from #table1
Group by fullname