现有一张数据表
create table t(
name varchar2(10),
content varchar2(10),
sys_date date
)现在想对这张表按name做group操作后,把content段的字符拼接起来,并且拼接的次序是按照sys_date排序的。例如有数据:
张三,吃饭,20110504
张三,睡觉,20110503
李四,打牌,20110504获得的结果应该是这样的:
张三,睡觉;吃饭
李四,打牌使用wm_concat是可以实现字符串拼接
select name,wm_concat(content) from t group by name但是这样我不能指定拼接时的顺序,有谁知道如何解决么?谢谢了。
create table t(
name varchar2(10),
content varchar2(10),
sys_date date
)现在想对这张表按name做group操作后,把content段的字符拼接起来,并且拼接的次序是按照sys_date排序的。例如有数据:
张三,吃饭,20110504
张三,睡觉,20110503
李四,打牌,20110504获得的结果应该是这样的:
张三,睡觉;吃饭
李四,打牌使用wm_concat是可以实现字符串拼接
select name,wm_concat(content) from t group by name但是这样我不能指定拼接时的顺序,有谁知道如何解决么?谢谢了。
select '张三' name,'吃饭' content, date'2011-05-04' sys_date from dual union all
select '张三' name,'睡觉' content, date'2011-05-03' sys_date from dual union all
select '李四' name,'打牌' content, date'2011-05-04' sys_date from dual)SELECT NAME, wm_concat(content)
FROM (SELECT * FROM t ORDER BY sys_date)
GROUP BY NAME;
select '张三' name,'吃饭' content, date'2011-05-04' sys_date from dual union all
select '张三' name,'睡觉' content, date'2011-05-03' sys_date from dual union all
select '李四' name,'打牌' content, date'2011-05-04' sys_date from dual)select name,max(content) from (
SELECT NAME, wm_concat(content)over(partition by name order by sys_date asc) content
FROM t)group by name ;