三个表之间查找到用户名成绩课程,存在多个用户名对应成绩,课程,进行oracle的行转列
又见阿郎演员表,wwwaaa444com,银锭观山
三个表之间查找到用户名成绩课程,存在多个用户名对应成绩,课程,进行oracle的行转列
SELECT name ,
SUM(DECODE(C_NAME,'高数一',grade)) AS daxl ,
SUM(DECODE(C_NAME,'高数一',grade)) AS gaoshuyi ,
SUM(DECODE(C_NAME,'C语言',grade)) AS clun ,
SUM(DECODE(C_NAME,'数据结构与算法',grade)) AS shujujiegou ,
SUM(DECODE(C_NAME,'大学物理',grade)) AS daxuewuli
FROM
(SELECT T1.name,
T3.C_NAME,
T2.GRADE
FROM T_USER T1
INNER JOIN T_GRADE T2
ON T1.U_ID = T2.U_ID
INNER JOIN T_COURSE T3
ON T2.C_ID =T3.C_ID
WHERE T1.CLASSES ='物联网132'
AND T2.GRADE_TYPE=2
)
GROUP BY name
ORDER BY name;
表格式应该是
张三 高数一 88
张三 大外一 90
张三 C语言 66
这个类型转换成
姓名: 高数一 大外一 C语言
张三 88 90 66
进行行转列
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
-
-
-
-
快速向表插入大量数据
当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候,oracle需要生成 redo log和undo log;此时最...
[阅读全文]
-
-
-
Oracle入门学习五
学习视频: https://www.bilibili.com/video/BV1tJ411r7EC?p=55 数据的完整性:保证插入表格的数据必须正确。...
[阅读全文]
-
Oracle入门学习六
事务:把一组操作看做一个工作单元,要么都执行,要么都不执行。dml操作才有事务,查询没有事务。 开始事务:从上一次的事务结束之后,从第一次dml操作,就...
[阅读全文]
-
网友评论