ORACLE 是否有此语法,把多记录合并成一行?

[复制链接]
查看11 | 回复9 | 2012-7-12 18:47:29 | 显示全部楼层 |阅读模式
ORACLE 11203 如:
广州   馒头    0.5
广州   鸡蛋    1.0
广州   上海青   3.5
清远   馒头    0.3
清远   鸡蛋    0.8
清远   上海青   1.5
我希望这样的效果,所有数据都被合并成一行: 广州馒头0.5;广州鸡蛋1.0;广州上海青3.5;清远馒头0.3;清远鸡蛋0.8;清远上海青1.5;


回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
concat?
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
select col1 || col2 || col3 from table;
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
songmingliang 发表于 2013-2-21 09:14
concat?

应该不是,CONCAT=||,但我的难处在:如何把合并后的第2行,第3行,,,等和第一行并排。
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
itbub 发表于 2013-2-21 09:20
select col1 || col2 || col3 from table;

所有数据都被合并成一行: 广州馒头0.5;广州鸡蛋1.0;广州上海青3.5;清远馒头0.3;清远鸡蛋0.8;清远上海青1.5;
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
为什么要显示成一行,数据要是很多,看起来也很不方便啊
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
WMSYS.WM_CONCAT+concat?
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
listagg可以啊
select listagg(a||b||c,';') within group (order by a) concat_str
from tab;
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
没见有这样的语法,可以写一段pl/sql匿名块来完成。
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
一定要用一个sql实现么?我感觉应该可以考虑用一个函数来实现!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行