分组统计SQL语句?

long7411 2015-07-22 12:05:19
表A:
市县名 乡镇名

东方 八所镇
东方 天安乡
东方 三家乡
乐东 千家镇
乐东 九所镇
陵水 黎安镇
.....


改成这样的表B:
市县名 乡镇名
东方 八所镇 ,天安乡 ,三家乡
乐东 千家镇 ,九所镇
陵水 黎安镇 .
.......
...全文
145 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pact_Alice 2015-07-22
  • 打赏
  • 举报
回复
WITH cet AS ( SELECT '东方' AS NAME ,'八所镇' AS ADDRESS UNION ALL SELECT '东方' ,'天安乡' UNION ALL SELECT '陵水' ,'黎安镇' ) SELECT c.NAME ,(STUFF((SELECT ','+c1.ADDRESS FROM cet c1 WHERE c1.name=c.name FOR XML PATH ('') ),1,1,''))AS ADDRESS FROM cet c GROUP BY c.NAME
kncuba 2015-07-22
  • 打赏
  • 举报
回复

if object_id('#tableName')is not null 

drop table #tableName

go

create table #tableName ([市县名]varchar(20),[乡镇名]varchar(20))

insert into #tableName values('东方','八所镇')

insert into #tableName values('东方','天安乡')

insert into #tableName values('东方','三家乡')

insert into #tableName values('乐东','千家镇')

insert into #tableName values('乐东','九所镇')

insert into #tableName values('陵水','黎安镇')

go



SELECT B.[市县名],LEFT(List,LEN(List)-1) as [乡镇名] FROM (
SELECT [市县名],
(SELECT [乡镇名]+',' FROM #tableName 
  WHERE [市县名]=A.[市县名] 
  FOR XML PATH('')) AS List
FROM #tableName A 
GROUP BY [市县名]
) B 


34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧