oracle行转列,oracle行转列函数

http://www.itjxue.com  2023-01-20 04:58  来源:未知  点击次数: 

oracle查询行转列怎么写

推荐用WM_CONCAT函数

SELECT A.STD, WM_CONCAT(A.F3) NEW_RESUL

FROM (SELECT STD, F3

FROM (SELECT STD, F1 F3

FROM TABLE_A

UNION ALL

SELECT STD, F2 F3 FROM TABLE_A) A) A

GROUP BY A.STD

oracle 列名不确定 行转列

select decode(t.rn,1,t.单位名称) as 单位名称1 ,

decode(t.rn,2,t.单位名称) as 单位名称2,

decode(t.rn,3,t.单位名称) as 单位名称3,

from (

select c.单位名称,to_number() over(partition by c.单位名称) as rn

from table1 a,table2 b,table3 c

where a.id1 = b.id1

and b.id2=c.id2

) t ;

这是在知道多少行记录数的情况下这样实现,如果不知道多少行,则最好用个中间表,搞个语句块,把相关的数先放到中间表在进行处理。

oracle 行转列,列名不固定,求指导。

我给你写个例子,你看着我的例子来。

select?*?from?tbname;

行转列之后的数据:

select?pud,?listagg(ud,?',')?within?group(order?by?null)?as?ud

??from?tbname

?group?by?pud;

Oracle列转行,行转列

oracle下可以用函数decode处理:

select 产品名称,

sum(decode(季度,'第一季度',销售额,0)) 第一季度销售额,

sum(decode(季度,'第二季度',销售额,0)) 第二季度销售额,

sum(decode(季度,'第三季度',销售额,0)) 第三季度销售额,

sum(decode(季度,'第四季度',销售额,0)) 第四季度销售额,

from 表名

group by 产品名称;

oracle 结果集行转列,多行数据转为一行显示,第一列内容拼接生成字段名

select wm_concat('月份'||月份,'人数'||人数,'人均费用'||人均费用) from table_name

oracle数据库关于把表的行变成列

姓名 数学 语文 姓名 张飞 赵云 庞统

张飞 60 61 数学 60 80 99

赵云 80 85 变成 语文 61 85 80

庞统 99 80

而且第一行为列名,不是表中的数据,这样的话

也就是第一个表下面三行的数据,变成第二个表下面两行的数据

这样还是可以的

(责任编辑:IT教学网)

更多