现有一张数据表
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但是这样我不能指定拼接时的顺序,有谁知道如何解决么?谢谢了。
解决方案 »
- 在书上看到这么一段关于Oracle的Having子句的解释
- 10g 安装问题~
- oracle存储过程
- pl/sql developer中如何导出oracle数据库结构?
- 仔细一个查询命令
- 实现这样的查询在ORACLE中如何写?
- 全角字符,半角字符 匹配查找问题 bzszp (20) lai
- 急!请大虾示范where子句带in参数的存储过程!
- 求助: linux 环境 oralce 9i 的 XPATH 无法识别中文字符
- 请问,我手工创建了一个ORACLE数据库,并建一test/test用户时,在登录进入sqlplus时,出错:ORA-06553: PLS-213: package STANDARD not ac
- 如何修改这个SQL提高查询效率?
- 求助 ORA-01460: unimplemented or unreasonable conversion requested
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 ;