Sql 将多个行值合并到Groupy的列中
我的表格如下:Sql 将多个行值合并到Groupy的列中,sql,sql-server,sql-server-2008,sql-server-2012,Sql,Sql Server,Sql Server 2008,Sql Server 2012,我的表格如下: 另一张表: Id FirstName SecondName 1 Ram N 2 Sita K 3 Bootha MU 4 Krishnan S 5 Hari M 6 Mehta A
另一张表:
Id FirstName SecondName
1 Ram N
2 Sita K
3 Bootha MU
4 Krishnan S
5 Hari M
6 Mehta A
7 Rahul C
8 Vamsi M
9 Badri S
我正在寻找如下输出:
Place FirstName
KARNATAKA Bootha, Hari
ANDHRA Bootha, Krishnan
第三排也是如此
基本上,它在第二列中结合了“stuff”
我尝试下面这样的查询,但它不起作用
select ad.Place, STUFF((SELECT ', '+ FirstName FROM Associate a INNER JOIN Address Ad on a.Id = Ad.ID
FOR XML PATH ('')) , 1, 1, '')
From Address ad inner join Associate a
on ad.ID = a.Id
group by ad.Place
只需要稍微修改一下,请帮帮我好吗 问题是连接太多。这很棘手,因为两个表之间的连接是通过
id
进行的,但您是在不同的级别进行聚合的。因此,在子查询中确实需要一个连接和一个相关条件:
select ad.Place,
STUFF((SELECT ', ' + a.FirstName
FROM Associate a join
Address ad2
on a.Id = ad2.Id
WHERE ad2.Place = ad.Place
FOR XML PATH ('')
) , 1, 2, '')
From Address ad
group by ad.Place;
次要的一点是,stuff()
(1,1
)的参数会在连接字符串的开头留下一个空格。问题是连接太多。这很棘手,因为两个表之间的连接是通过id
进行的,但您是在不同的级别进行聚合的。因此,在子查询中确实需要一个连接和一个相关条件:
select ad.Place,
STUFF((SELECT ', ' + a.FirstName
FROM Associate a join
Address ad2
on a.Id = ad2.Id
WHERE ad2.Place = ad.Place
FOR XML PATH ('')
) , 1, 2, '')
From Address ad
group by ad.Place;
次要的一点是,stuff()
(1,1
)的参数会在连接字符串的开头留下一个空格。问题是连接太多。这很棘手,因为两个表之间的连接是通过id
进行的,但您是在不同的级别进行聚合的。因此,在子查询中确实需要一个连接和一个相关条件:
select ad.Place,
STUFF((SELECT ', ' + a.FirstName
FROM Associate a join
Address ad2
on a.Id = ad2.Id
WHERE ad2.Place = ad.Place
FOR XML PATH ('')
) , 1, 2, '')
From Address ad
group by ad.Place;
次要的一点是,stuff()
(1,1
)的参数会在连接字符串的开头留下一个空格。问题是连接太多。这很棘手,因为两个表之间的连接是通过id
进行的,但您是在不同的级别进行聚合的。因此,在子查询中确实需要一个连接和一个相关条件:
select ad.Place,
STUFF((SELECT ', ' + a.FirstName
FROM Associate a join
Address ad2
on a.Id = ad2.Id
WHERE ad2.Place = ad.Place
FOR XML PATH ('')
) , 1, 2, '')
From Address ad
group by ad.Place;
作为一个小点,您对stuff()
(1,1
)的参数将在连接字符串的开头留下一个空格。谢谢Gordon,太好了,我从查询中删除了“ON”,成功了:):)我同意您对空格的看法。今天是我第一次看到这些东西:)谢谢戈登,太好了,我从你的查询中删除了“ON”,它成功了:):)我同意你关于空间的看法。今天是我第一次看到这些东西:)谢谢戈登,太好了,我从你的查询中删除了“ON”,它成功了:):)我同意你关于空间的看法。今天是我第一次看到这些东西:)谢谢戈登,太好了,我从你的查询中删除了“ON”,它成功了:):)我同意你关于空间的看法。今天是我第一次碰到东西:)