问个更改SQL数据库结构额问题
来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/11/11 09:39:06
问个更改SQL数据库结构额问题
我原来数据库的结构是这样的
名字 科目 分数
小明 60
小明 70
小明 英语 65
小红 80
小红 90
小红 英语 75
...
剩下的都是这样的了!每个名字都是占三条记录!我现在想改成
名字 英语分数
小明 60 70 65
小红 80 90 75
每个人只占一条记录
各位老师有什么好的思路吗?在此先谢过了!
我原来数据库的结构是这样的
名字 科目 分数
小明 60
小明 70
小明 英语 65
小红 80
小红 90
小红 英语 75
...
剩下的都是这样的了!每个名字都是占三条记录!我现在想改成
名字 英语分数
小明 60 70 65
小红 80 90 75
每个人只占一条记录
各位老师有什么好的思路吗?在此先谢过了!
可以啊,语句:
select 名字,case when 科目='数学' then 分数 else 0 end as 数学分数
,case when 科目='语文' then 分数 else 0 end as 语文分数
,case when 科目='英语' then 分数 else 0 end as 英语分数
from 表
group by 名字
如果科目不止数学,语文,英语,要在语句相应增加,就是如
case when 科目='新科目' then 分数 else 0 end as 新科目分数
再用select语句创建新表就可以了,用以下语句创建新表
select 名字,case when 科目='数学' then 分数 else 0 end as 数学分数
,case when 科目='语文' then 分数 else 0 end as 语文分数
,case when 科目='英语' then 分数 else 0 end as 英语分数
into 新表 from 表
group by 名字
select 名字,case when 科目='数学' then 分数 else 0 end as 数学分数
,case when 科目='语文' then 分数 else 0 end as 语文分数
,case when 科目='英语' then 分数 else 0 end as 英语分数
from 表
group by 名字
如果科目不止数学,语文,英语,要在语句相应增加,就是如
case when 科目='新科目' then 分数 else 0 end as 新科目分数
再用select语句创建新表就可以了,用以下语句创建新表
select 名字,case when 科目='数学' then 分数 else 0 end as 数学分数
,case when 科目='语文' then 分数 else 0 end as 语文分数
,case when 科目='英语' then 分数 else 0 end as 英语分数
into 新表 from 表
group by 名字