A. 简单sql语句,查询成绩
select * from xs
inner join
(
select km,max(fs) as fs from xs group by km
)w
on xs.km = w.km and xs.fs = w.fs
这样行不?凭想象写的,请参考
B. 如何用SQL语句查询各门课程的平均成绩
创建表:
SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[stuscore]
( [name] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[subject] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[score] [int] NULL,
[stuid] [int] NULL)
ON [PRIMARY]
GO
SET ANSI_PADDING OFF
插入数据:
insert into dbo.stuscore values ('张三','数学',89,1);
insert into dbo.stuscore values ('张三','语文',80,1);
insert into dbo.stuscore values ('张三','英语',70,1);
insert into dbo.stuscore values ('李四','数学',90,2);
insert into dbo.stuscore values ('李四','语文',70,2);
insert into dbo.stuscore values ('李四','英语',80,2);
查询结果如下:
列出各门课程的平均成绩:
select subject,AVG(score)平均成绩 from stuscore
group by subject;
C. 按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句
按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句示例如下:
selectA.name,
(selectB.scorefromtable_scoreBwhereB.type='数学'andA.id=B.id)as数学,
(selectB.scorefromtable_scoreBwhereB.type='语文'andA.id=B.id)as语文,
(selectB.scorefromtable_scoreBwhereB.type='英语'andA.id=B.id)as英语,
(selectSUM(B.score)fromtable_scoreBwhereA.id=B.id)assum_score
fromtable_studentAorderbysum_scoreDESC
以上sql语句首先把学生表和成绩表联合查出每个学生的数学、语文、英语成绩,然后通过selectSUM(B.score)fromtable_scoreBwhereA.id=B.id查出每个学生的总成绩。
最后orderbysum_scoreDESC实现按总成绩倒叙排列。
(3)sql只查询英语成绩扩展阅读
上述sql语句重点是对as关键字的使用-Alias(别名),通过使用SQL,可以为列名称和表名称指定别名(Alias)。
表的SQLAlias语法
SELECTcolumn_name(s)FROMtable_nameASalias_name;
列的SQLAlias语法
SELECTcolumn_nameASalias_nameFROMtable_name;
Alias实例:使用表名称别名
假设我们有两个表分别是:"Persons"和"Proct_Orders"。我们分别为它们指定别名"p"和"po"。
现在,我们希望列出"JohnAdams"的所有定单。
我们可以使用下面的SELECT语句:
SELECTpo.OrderID,p.LastName,p.FirstNameFROMPersonsASp,Proct_OrdersASpoWHEREp.LastName='Adams'ANDp.FirstName='John'
D. 语文,数学和英语的成绩怎么用sql语句显示出来
case when语句x0dx0aselect 语文 ,x0dx0a(case 语文x0dx0a when 语文>=80 then '优秀'x0dx0a when 语文>=60 and 语文<80 then '及格'x0dx0a when 语文<60 then '不及格'x0dx0aend) as 语文是否合格,x0dx0a数学,x0dx0a(case 数学x0dx0a when 数学>=80 then '优秀'x0dx0a when 数学>=60 and 语文<80 then '及格'x0dx0a when 数学<60 then '不及格'x0dx0aend) as 数学是否合格,x0dx0a英语,x0dx0a(case 英语x0dx0a when 英语>=80 then '优秀'x0dx0a when 英语>=60 and 英语<80 then '及格'x0dx0a when 英语<60 then '不及格'x0dx0aend) as 英语是否合格,x0dx0a from 成绩表 where ......