oracle如何合并两列 oracle合并两列内容

oracle查询时将两行不同的数值合并成分开的两列

原表名字:test

成都创新互联服务项目包括寿光网站建设、寿光网站制作、寿光网页制作以及寿光网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,寿光网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到寿光省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

三个字段:姓名:nm,选修课:xx,成绩:cj

分两张情况:

一、选修科目数量确定为2:

两种写法:

1、普通写法

with t as

(select nm,

'选修' || row_number() over(partition by nm order by cj) xx_tp,

'成绩' || row_number() over(partition by nm order by cj) cj_tp,

xx,

cj

from test a)

select nm "姓名",

max(decode(xx_tp, '选修1', xx, null)) "选修1",

max(decode(cj_tp, '成绩1', cj, null)) "成绩1",

max(decode(xx_tp, '选修2', xx, null)) "选修2",

max(decode(cj_tp, '成绩2', cj, null)) "成绩2"

from t

group by nm

2、pivot

with t as

(select nm,

'选修' || row_number() over(partition by nm order by cj) xx_tp,

'成绩' || row_number() over(partition by nm order by cj) cj_tp,

xx,

cj

from test a)

select nm "姓名", max(xx1) "选修1", max(cj1) "成绩1", max(xx2) "选修2", max(cj2) "成绩2"

from (select *

from t

pivot(max(xx)

for xx_tp in('选修1' xx1, '选修2' xx2))) a

pivot (max(cj) for cj_tp in('成绩1' cj1, '成绩2' cj2))

group by nm

二、选修科目数量不确定

首先去 ;tid=1609939extra=highlight=%B6%AF%CC%AC%D0%D0%D7%AA%C1%D0page=1   复制动态行转列的代码到sql窗口中运行,然后执行如下代码:

with t as

(select *

from table(pivot('select nm,

''成绩'' || row_number() over(partition by nm order by cj) cj_tp,

cj

from test a'))),

t1 as

(select *

from table(pivot('select nm,

''选修'' || row_number() over(partition by nm order by cj) cj_tp,

xx

from test a')))

select * from t, t1 where t.nm = t1.nm

以上。

oracle sql union all 合并多列

select name as 姓名 ,id as 编号 from A

union all

select staff_name as 姓名 ,staff_id as 编号 from B

ORACLE 中,合并两列结果集

把CC表的记录删掉后用insert就可以了。

insert into cc(xx) select BB from AA union select CC from AA;

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

方法有如下两种:

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;

oracle里面怎么合并两列数据

单纯的select a||b肯定是错的,你得有个相同的字段才能进行合并啊

所以你得把两个表做个子查询加上一个行号,然后用两个行号做关联才行

oraclegroupby怎么吧不同的列用逗号合并

oraclegroupby把不同的列用逗号合并步骤:

1、Oracle10G以前使用WMSYS.WM_CONCAT:wmsys.wm_concat将字段的值用","来隔开。

2、使用sys_connect_by_pathsys_connect_by_path(字段名,2个字段之间的连接符号),这里的连接符号不要使用逗号。


分享题目:oracle如何合并两列 oracle合并两列内容
文章起源:http://cdiso.cn/article/hpeogs.html

其他资讯