sql group by 之后 如何合并分组的文本

例如:姓名内容1小名在家2小名上网3小名睡觉4小名看书5小王上班6小王吃饭7小王打球8王强看电视9王强玩游戏合并后姓名内容1小名在家上网睡觉看书2小王上班吃饭打球3王强看... 例如:
姓名 内容
1 小名 在家
2 小名 上网
3 小名 睡觉
4 小名 看书
5 小王 上班
6 小王 吃饭
7 小王 打球
8 王强 看电视
9 王强 玩游戏
合并后
姓名 内容
1 小名 在家上网睡觉看书
2 小王 上班吃饭打球
3 王强 看电视玩游戏

谢谢
展开
 我来答
flyingFish211
2011-02-25 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
db2 / oracle /sql server 2005以上,可以这样做
SELECT 姓名,
MAX(CASE RK WHEN 1 THEN 内容 ELSE '' END)
||MAX(CASE RK WHEN 2 THEN 内亮搏容 ELSE '' END)
||MAX(CASE RK WHEN 3 THEN 内容 ELSE '' END)
||MAX(CASE RK WHEN 4 THEN 内容 ELSE '' END)
FROM (SELECT 姓敬此祥名, 内容扒棚,
ROW_NUMBER() OVER(PARTITION BY 姓名 ORDER BY 内容) rk FROM tab) t
GROUP BY 姓名
misszl1
2011-02-25 · TA获得超过491个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:203万
展开全部
一,如果是sql2000,只有用自定义函数
create function dbo.f_str(@name int) returns varchar(100)
as
begin
declare @str varchar(1000)
set @str = ''
select @str = @str + cast(内容 as varchar) from 表名 where id = @name set @str = right(@str , len(@str) - 1)
return @str
end
go

--调用函数
select 姓名 , 内逗举容 = dbo.f_str(姓名) from 表名 group by 姓名
drop function dbo.f_str

二,如果是sql2005,那么:
select 姓散山名, [内容] = stuff((select [内容] from 表名 t where 姓名 = 表名.姓名 for xml path('')) , 1 , 1 , ''山掘碧)
from 表名 group by 姓名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lonxa26
2011-02-25 · TA获得超过300个赞
知道答主
回答量:298
采纳率:100%
帮助的人:229万
展开全部
立迟辩的视图才能实现你要求的效果
以下为例子:
--(1)建立辅助统计的函数f_un,这里假设订单号字段类型为varchar
create function f_un(@name varchar(255),@color varchar(255))
returns varchar(8000)
as
begin
declare @s varchar(8000)
declare @link varchar(255)
set @s = ''
set @link = ' '--这里是连接中族单号的字符,按你的要求设置为空格
--组合字符串
select @s = @s +订单号+@link from dingdan_tb where 名称 = @name and 颜色 = @color
--处理多余的@link
set @s = left(@s,len(@s) - len(@link))
--返回结果
return @s
end

--(2)以上是函数,创建上述函数f_un后,用以下语句创建视图
select dbo.f_un(名称,颜色卖旦弊) as 订单号, 名称, 颜色, sum(订单数量) as 订单数量
from dingdan_tb
group by 名称, 颜色
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shutao917
2011-02-25 · TA获得超过1213个赞
知道大有可为答主
回答量:2199
采纳率:0%
帮助的人:3125万
展开全部
select distinct name,(select 内容 as [text()] from test where name=a.name order by id for xml path('')) 内容没胡让枯局做物
from test a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魂独孤羽
2011-02-25 · TA获得超过322个赞
知道小有建树答主
回答量:328
采纳率:58%
帮助的人:79.9万
展开全部
--测试通过团神的神铅代码游或好
Declare
L_join Varchar2(500);
Begin
For RecH In(Select Distinct Name From test)
Loop
For Rec in(Select trim(memo) memo
From test
Where Name = RecH.Name)
Loop
L_join := L_join||Rec.Memo;
End Loop;
dbms_output.put_line(RecH.name||' '||L_join);
L_join := Null;
End Loop;
End;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式