请问各位大神 oracle中 怎么将多列数据合并为一列

比如 现在的数据是这样的:
编码 一级 二级 三级 四级
1 a b c d
2 e f g

3 h i j
4 k l m
要合并成这样:
编码 一级

1 a>b>c>d
2 e>f>g
3 h>i>j
4 k>l>m

方法有如下两种:
1、利用存储过程,先查出所要的数据,循环放入一列中:
select 编码,decode(一级,null,null,一级||'>')||decode(二级,null,null,二级||'>')||decode(三级,null,null,三级||'>')||decode(四级,null,null,四级||'>') from 表名

2、使用wm_concat()方法,如select wm_concat(name) as name from user;
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-14
select 编码,decode(一级,null,null,一级||'>')||decode(二级,null,null,二级||'>')||decode(三级,null,null,三级||'>')||decode(四级,null,null,四级||'>') from tab追问

谢谢 我已经解决问题了

本回答被提问者采纳

请问各位大神 oracle中 怎么将多列数据合并为一列
方法有如下两种:1、利用存储过程,先查出所要的数据,循环放入一列中:select 编码,decode(一级,null,null,一级||'>')||decode(二级,null,null,二级||'>')||decode(三级,null,null,三级||'>')||decode(四级,null,null,四级||'>') from 表名 2、使用wm_concat()方法,如select wm_con...

oracle中如何把表中具有相同值列的多行数据合并成一行
有两种方法:

oracle中如何将多行合并成一个值
在Oracle中,若需将多行合并为一个值,尤其是当这些行拥有共同的分组标识(例如姓名编号),可以采用group by查询并结合聚合函数min。这样能有效地将每组的最小值聚合到一起。具体实现方式如下:首先,明确你的数据表和字段。假设表名为"记录表",包含字段"姓名"、"引流管"、"化疗"和"放疗"。目的是...

利用Oracle分析函数实现多行数据合并为一行
DEPTNO ENAME RANK CLARK KING MILLER ADAMS FORD JONES SCOTT SMITH ALLEN BLAKE JAMES MARTIN TURNER WARD 可看出 经过row_number()后 部门人已经按部门和人名进行了排序 并打上了一个位置字段rank 利用oracle的递归查询connect by进行表内递归 并通过sys_connect_by_path进行父子数据追溯串的构造 ...

求助,oracle多行数据合并成一行
select id ,listagg( name, ',' ) within group ( order by id ) as name from TABLE_NAME GROUP BY id;

oracle数据库,对多列,空集合,合并为一列查询SQL的方法?
因为oracle都是列处理函数,先利用union行转列,然后在找到每个id分组对应的最小值,再合在一起,不过如果数据量大的话,那么这种办法不那么靠谱。

sql多行多列合并成一行多列,
您好利用分析函数 sum max min 等均可实现此功能(oracle 中 空值不参与大小比较(11g是这样的 其他版本需要你自己测试相爱))如:select 产品, max(标价),max(二标价),max(三标价) from table group by 产品;或者 select 产品, sum(标价)),sum(二标价),sum(三标价) from table group by ...

在oracle中怎么将两个表合在一起?
在Oracle中,将两个表合在一起可以通过多种方法实现,具体取决于合并的需求和目的。以下是几种常用的方法:1. 使用INSERT INTO SELECT语句:如果两个表具有相同的列和数据类型,并且你想将一个表的所有行插入到另一个表中,可以使用INSERT INTO SELECT语句。例如,假设有两个表table1和table2,你可以...

oraclegroupby怎么吧不同的列用逗号合并
oraclegroupby把不同的列用逗号合并步骤:1、Oracle10G以前使用WMSYS.WM_CONCAT:wmsys.wm_concat将字段的值用","来隔开。2、使用sys_connect_by_pathsys_connect_by_path(字段名,2个字段之间的连接符号),这里的连接符号不要使用逗号。

oracle 两行数据合并为一行数据
合并可以做到,不过如果不是单一的一条记录,那不就变成笛卡尔积了?比如有两行不同姓名的行,再有两行不同姓名1的行。那么你得到的结果就是4行(也就是笛卡尔积),而且内容全不完全都不同,这个结果应该不是你要的吧。比如前面的两行内容为a a a;b b b(一个字母表示一个字段...

相似回答