oracle行转列,oracle行转列函数
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
而且第一行为列名,不是表中的数据,这样的话
也就是第一个表下面三行的数据,变成第二个表下面两行的数据
这样还是可以的