为了账号安全,请及时绑定邮箱和手机立即绑定

用sql,大家帮帮忙!

用sql,大家帮帮忙!

慕沐林林 2018-12-06 11:35:36
已知数据表数据如(表一),请将它动态显示成(表二)格式   create table StudentInfo(Sname varchar(10) , Subject varchar(10) , Scorefloat) insert into StudentInfo values('张三' , '.Net' , 80) insert into StudentInfo values('张三' , 'JAVA' , 85) insert into StudentInfo values('张三' , 'SQL' , 95) insert into StudentInfo values('李四' , '.Net' , 86) insert into StudentInfo values('李四' , 'JAVA' , 92) insert into StudentInfo values('王五' , '.Net' , 96) insert into StudentInfo values('王五' , 'JAVA' , 88) insert into StudentInfo values('王五' , 'SQL' ,78)   姓名 课程 成绩 张三 .Net 80 张三 JAVA 85 张三 SQL 95 李四 .NET 86 李四 JAVA 92 王五 .NET 96 王五 JAVA 88 王五 SQL 78 姓名 .NET JAVA SQL 张三 80 85 95 李四 86 92   王五 96 88 78           (表一)                                     (表二)
查看完整描述

9 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

能解释下不,看不太懂!

查看完整回答
反对 回复 2019-01-07
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

@小兴o………o: ID CLASS SCORE
------ ---------- ----------
1 language 78
2 english 98
3 maths 94
1 maths 85
2 maths 56
---------------------------------------------
select id,sum(decode(class,'language',score,0)) "语文",
sum(decode(class,'english',score,0)) "英语",
sum(decode(class,'maths',score,0)) "数学"
from tp1
group by id--------------------用动态SQL  语句,Score是不定数的

ID 语文 英语 数学
------- ---------- ---------- ----------
1 78 0 85
2 0 98 56
3 0 0 94

查看完整回答
反对 回复 2019-01-07
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

@無限遐想: 先 以姓名分组。对于一个类型,进行查询,得到结果。给了 一个列名。

道理 其实是一样的。

查看完整回答
反对 回复 2019-01-07
?
手掌心

TA贡献1942条经验 获得超3个赞

@無限遐想: selectA1.姓名,
sum(case A1.课程 when ‘.NET’ )as '.NET',
sum(case A1.课程 when ‘JAVA’ )as 'JAVA',
sum(case A1.课程 when ‘SQL’ )as 'SQL'
from A A1
group by A1.姓名

查看完整回答
反对 回复 2019-01-07
?
呼如林

TA贡献1798条经验 获得超3个赞

行转列的问题,sql2005中有个函数:PIVOT,具体用法可查demo

查看完整回答
反对 回复 2019-01-07
  • 9 回答
  • 0 关注
  • 619 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信