oracle纵表转横表
oracle纵表转横表
·
有时我们查询数据库数据为了更直观的展示数据,我们需要将纵列数据展示成横列数据,以下用一个小例子来展示如何转换
1.创建一个普通的纵表
create table TableName
(
姓名 varchar(20),
课程 varchar(20),
成绩 int
)
insert into TableName(姓名,课程,成绩) values('张三','语文',60)
insert into TableName(姓名,课程,成绩) values('张三','数学',70)
insert into TableName(姓名,课程,成绩) values('张三','英语',80)
insert into TableName(姓名,课程,成绩) values('李四','语文',90)
insert into TableName(姓名,课程,成绩) values('李四','数学',100)
2、纵表转横表
聚合函数[max或sum]配合case语句
select t.姓名,
max(case t.课程 when '语文' then t.成绩 else 0 end ) 语文,
max(case t.课程 when '数学' then t.成绩 else 0 end ) 数学,
max(case t.课程 when '英语' then t.成绩 else 0 end ) 英语
from TableName t group by t.姓名;
更多推荐
已为社区贡献1条内容
所有评论(0)