oracle某表的一个字段有多值,怎么把这值变成多行,其它数据为一样

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle某表的一个字段有多值,怎么把这值变成多行,其它数据为一样相关的知识,希望对你有一定的参考价值。

1.新建一个名为TEST表
2.向TEST表中添加数据
INSERT INTO TEST(STUDENT,COURSE,SCORE)
select '张三','语文',78 from dual union
select '张三','数学',87 from dual union
select '张三','英语',82 from dual union
select '张三','物理',90 from dual union
select '李四','语文',65 from dual union
select '李四','数学',77 from dual union
select '李四','英语',65 from dual union
select '李四','物理',85 from dual

列转行

方法··1:
select
Student,
sum(decode(Course, '数学', Score)) 数学,
sum(decode(Course, '物理', Score)) 物理,
sum(decode(Course, '英语', Score)) 英语,
sum(decode(Course, '语文', Score)) 语文
from
TEST
group by Student
方法2:
select
Student,
sum(case Course when '数学' then Score else null end) 数学,
sum(case Course when '物理' then Score else null end) 物理,
sum(case Course when '英语' then Score else null end) 英语,
sum(case Course when '语文' then Score else null end) 语文
from
TEST
group by Student
参考技术A 用unpivot或case when

以上是关于oracle某表的一个字段有多值,怎么把这值变成多行,其它数据为一样的主要内容,如果未能解决你的问题,请参考以下文章

请问:mybatis查询某表的某个字段的最大值并返回,该如何写mapper的配置文件?

oracle 如何将某表用rank函数排序出来的值,update到该表中的某个字段

帝国CMS7.0的多值字段如何循环调用?

Oracle 建立索引及SQL优化

如何在java中用hql或sql查询得到某表的所有字段名?

java更新一个很长的字符串到oracle某表clob字段里