Orale 多列转多行

1、创建表

create table TESTDATE
(
  calc_type NVARCHAR2(10),
  calc_no   NVARCHAR2(10),
  calc_name NVARCHAR2(10),
  calc_aca1 NVARCHAR2(10),
  calc_aca2 NVARCHAR2(10),
  calc_acn1 NVARCHAR2(10),
  calc_acn2 NVARCHAR2(10)
)
View Code

2、插入数据 如下图

Orale 多列转多行

 3、sql语句

select calc_type,calc_no,calc_name,aca,acn,newname
from testdate unpivot ((aca,acn) --多列合并一列别名
 for newname in (
   (calc_aca1,calc_acn1),(calc_aca2,calc_acn2) --实际数据库的列明
   ))
View Code

Orale 多列转多行