查询数据库时,怎样让重复项的某个不重复字段合拢
查询数据库时,怎样让重复项的某个不重复字段合并
有这样一个表:
Name Content
肯德基 美国企业
肯德基 快餐店
肯德基 用过期牛肉
麦当劳 快餐店
麦当劳 用过期牛肉
德克士 快餐店
我想要把Name字段相同的项的Content字段拼接,出这样的结果:
Name Content
肯德基 美国企业,快餐店,用过期牛肉
麦当劳 快餐店,用过期牛肉
德克士 快餐店
请问怎样写查询语句
------解决思路----------------------
------解决思路----------------------
有这样一个表:
Name Content
肯德基 美国企业
肯德基 快餐店
肯德基 用过期牛肉
麦当劳 快餐店
麦当劳 用过期牛肉
德克士 快餐店
我想要把Name字段相同的项的Content字段拼接,出这样的结果:
Name Content
肯德基 美国企业,快餐店,用过期牛肉
麦当劳 快餐店,用过期牛肉
德克士 快餐店
请问怎样写查询语句
------解决思路----------------------
;WITH t1(NAME,CONTENT)
AS
(
SELECT N'肯德基', '美国企业' UNION ALL
SELECT N'肯德基', '快餐店' UNION ALL
SELECT N'肯德基', '用过期牛肉' UNION ALL
SELECT N'麦当劳', '快餐店' UNION ALL
SELECT N'麦当劳', '用过期牛肉' UNION ALL
SELECT N'德克士', '快餐店'
)
SELECT NAME
, STUFF((SELECT ','+CONTENT FROM t1 AS a WHERE t1.NAME=a.NAME FOR XML PATH('')),1,1,'')
FROM t1
GROUP BY t1.NAME
------解决思路----------------------
if object_id('[tb1]') is not null drop table [tb1]
go
create table tb1 (Name varchar(20),Content varchar(20) )
insert into tb1
select '肯德基','美国企业' union all
select '肯德基','快餐店' union all
select '肯德基','用过期牛肉' union all
select '麦当劳','快餐店' union all
select '麦当劳','用过期牛肉' union all
select '德克士','快餐店'
go
select Name , stuff((select ','+Content from tb1 a where a.Name=tb1.Name for xml path('') ),1,1,'') as Content
from tb1 group by Name