sqlserver 分组 拼接其他字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 分组 拼接其他字段相关的知识,希望对你有一定的参考价值。
人员ID 人员名称 人员的儿女 儿女岁数
----------------------------------------------------------
1 吴亮 吴1 3岁
1 吴亮 吴2 5岁
1 吴亮 吴3 9岁
4 麦大伟 麦1 3岁
4 麦大伟 麦2 5岁
6 张思 张1 1岁
查询SQL后 想要得到这样的数据
人员ID 人员 人员儿女 儿女岁数
---------------------------------------------------------
1 吴亮 吴1,吴2,吴3, 3岁,5岁,9岁,
4 麦大伟 麦1,麦2, 3岁,5岁,
6 张思 张1 1岁,
******************
我知道oracle 可以直接用 wm_concat () 这个函数,但 sqlserver没有这东西,怎么写呢
求指教
Declare @t Table
(
ID int,
FName varchar(20),
CName varchar(20),
CAge varchar(20)
)
Insert Into @t
select 1,'吴亮','吴1','3岁' Union
select 1,'吴亮','吴2','5岁' Union
select 1,'吴亮','吴3','9岁' Union
select 4,'麦大伟','麦1','3岁' Union
select 4,'麦大伟','麦2','5岁' Union
select 6,'张思','张1','3岁'
下面是合并:
Select ID,FName,CName=Stuff((Select ','+CName From @t Where ID=T.ID For xml path('')),1,1,''),
CAge=Stuff((Select ','+CAge From @t Where ID=T.ID For xml path('')),1,1,'')
From @t T Group by id,FName追问
关联多表的时候 会有问题吗
就是说 @t 是很多表关联所得的
select a.name,b.name,c.name,d,name,sum(isnull(d.money,0))as 钱钱
from a as a
left jion b on a.id=b.id
left jion c on a.id=c.id
left jion d on a.id=d.id
group by a.name,b.name,c.name,d,name
追问
刚才没有 写完...
你再看看 问题的补充
sqlserver 同字段值拼接 列转行
--*******************************************************************************************
表结构,数据如下:
id value
----- ------
1 aa
1 bb
2 aaa
2 bbb
2 ccc
需要得到结果:
id values
------ -----------
1 aa,bb
2 aaa,bbb,ccc
即:group by id, 求 value 的和(字符串相加)
create table tb(id int, value varchar(10))
insert into tb values(1, \'aa\')
insert into tb values(1, \'bb\')
insert into tb values(2, \'aaa\')
insert into tb values(2, \'bbb\')
insert into tb values(2, \'ccc\')
go
select id, [values]=stuff((select \',\'+[value] from tb t where id=tb.id for xml path(\'\')), 1, 1, \'\')
from tb
group by id
/*
id values
----------- --------------------
1 aa,bb
2 aaa,bbb,ccc
(2 row(s) affected)
*/
drop table tb
最全介绍参考:https://www.cnblogs.com/yasuo2/p/6433697.html
以上是关于sqlserver 分组 拼接其他字段的主要内容,如果未能解决你的问题,请参考以下文章
sqlserver group by 非聚集多字段组合索引性能慢的问题