问题:有一张学生成绩表sc(sid 学号,cid 课程,score 成绩),请查询出每个学生的英语、数学的成绩(行转列,一个学生只有一行记录)。
建表语句:
create
实现方式1——join
这种实现方式很不好,很明显要花很大的功夫去查询数据,而且我写的代码也没有彻底的实现需求。不过我很庆幸我能够想到这种方式,所以记录一下!
select
实现方式2——窗口函数
这种方式明显要比第1种方法很多,但仍然是存在问题的,而且代码也不好看!同样的,我仍然很庆幸自己能想到这种方式,所以记录一下
select
实现方式3——group 计算
这种方式安全、卫生、起效快。遗憾的是这种方式并不是我想出来的,而是参考了 @逆流 的代码,这种方式毫无疑问将会是我以后写代码的首选!
select
结果: