请教sql分组查询

来源:百度知道 编辑:UC知道 时间:2024/09/23 14:33:28
越简单越好,只要关键几行代码,不要垃圾代码。谢谢合作!
表:table1
字段:id , name
内容:
----------------
1,aaa
1,bbb
2,ccc
2,ddd
3,eee
3,fff
--------------
希望结果:
---------------------
1 aaa bbb [aaa bbb之间半角空格区分,以下类似]
2 ccc ddd
3 eee fff
-----------------------
数据库:postgres SQL /SQL也可以
用case as 也可以 !

DECLARE @t TABLE(id int, name varchar(10))
INSERT @t SELECT 1, 'aaa'
UNION ALL SELECT 1, 'bbb'
UNION ALL SELECT 2, 'ccc'
UNION ALL SELECT 2, 'ddd'
UNION ALL SELECT 3, 'eee'
UNION ALL SELECT 3, 'fff'

-- 查询处理
SELECT *
FROM(
SELECT DISTINCT
id
FROM @t
)A
OUTER APPLY(
SELECT [name]= STUFF(REPLACE(REPLACE(
(
SELECT name FROM @t N
WHERE id = A.id
FOR XML AUTO
), '<N name="', ' '), '"/>', ''), 1, 1, '')
)N

--------------------

(6 个资料列受到影响)

(1 个资料列受到影响)
id name
----------- ----------------------------------------------
1 aaa bbb
2 ccc ddd
3 eee fff

(3 个资料列受到影响)

(1 个资料列受到影响)

select id,replace(wm_concat(name),',',' ') as name from table1 grou