数据库练习题

本文介绍如何使用SQL查询将学生姓名与各科成绩对应展示,包括具体的SQL语句示例,涉及表格Student、Subject和Score的数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现有三个表
Student(ID 学生号,Name 姓名),
Subject(SubID 课程号,SubName 课程名),
Score ( ScoreId 成绩号 , SubID 课程号, StdID 学生号, Score 成绩)

数据如下:

Student

a001 张三
a002 王强

Subject

s001 英语
s002 数学
s003 语文
s004 历史

Score

1 s001 a001 78
2 s002 a001 67
3 s003 a001 89
4 s004 a001 76
5 s001 a002 89
6 s002 a002 67
7 s003 a002 84
8 s004 a002 96

怎么能实现如下显示结果:

姓名 英语 数学 语文 历史
张三 78 67 89 76
王强 89 67 84 96

select s.name,max(
case
when ss.sub_id = ‘s001’ then ss.score
end
)‘英语’,
max(
case
when ss.sub_id = ‘s002’ then ss.score
end
)‘数学’,
max(
case
when ss.sub_id = ‘s003’ then ss.score
end
)‘语文’,
max(
case
when ss.sub_id = ‘s004’ then ss.score
end
)‘历史’
from score ss inner join student s
on ss.stu_id = s.id
group by ss.stu_id

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值