Oracle 将列转换为行的SQL语句(oracle列转行SQL)
案例:
现在有一个表employee_tbl,有如下数据:
id name gender age
1 Jack male 19
2 Nick male 24
3 Tom male 25
4 Rose female 22
要求将性别列转换为行
Oracle数据库通过使用列转行功能,可以快速将数据表某一列转换为行。例如,使用Oracle SQL中的Pivot操作可以将employee_tbl表的gender列转换为行。具体的步骤如下:
1、开启实验环境
假设已经有创建好了 Oracle 数据库环境,且创建好employee_tbl表:
create table employee_tbl
(id number(2,0),
name varchar2(50),
gender varchar2(10),
age number(2,0));
2、插入演示数据
将提供的演示数据插入到上述表中:
insert into employee_tbl
select 1, 'Jack','male',19 from dual union all
select 2, 'Nick','male',24 from dual union all
select 3, 'Tom','male',25 from dual union all
select 4, 'Rose','female',22 from dual;
3、Oracle 将列转换为行的SQL语句
Oracle通过使用列转行语句,可以将employee_tbl表的gender属性转换为行:
select * from
(select id,name,gender,age from employee_tbl)
pivot
(count(gender)
for gender in('male' male,'female' female));
4、查询结果
查询之后会显示如下结果:
ID NAME MALE FEMALE
-----------------------------------------------------
1 Jack 1 0
2 Nick 1 0
3 Tom 1 0
4 Rose 0 1
可以看到,通过使用 Oracle SQL,我们实现了将employee_tbl表中gender列转换为行,实现数据表列转行的目的。
总结:
本文讲解了如何使用Oracle SQL实现将数据表某一列转换为行的步骤:通过使用Pivot操作完成列转行。具体的步骤:首先开启Oracle数据库,创建employee_tbl表,然后插入演示数据,最后执行查询语句获得转换的行的数据结果。