按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句
按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句示例如下:
select A.name,
(select B.score from table_score B where B.type='数学' and A.id=B.id)as 数学,
(select B.score from table_score B where B.type='语文' and A.id=B.id)as 语文,
(select B.score from table_score B where B.type='英语' and A.id=B.id) as 英语,
(select SUM(B.score) from table_score B where A.id=B.id) as sum_score
from table_student A order by sum_score DESC
以上sql语句首先把学生表和成绩表联合查出每个学生的数学、语文、英语成绩,然后通过select SUM(B.score) from table_score B where A.id=B.id查出每个学生的总成绩。
最后order by sum_score DESC实现按总成绩倒叙排列。
扩展资料
上述sql语句重点是对as关键字的使用-Alias(别名),通过使用SQL,可以为列名称和表名称指定别名(Alias)。
表的SQLAlias语法
SELECTcolumn_name(s)FROMtable_nameASalias_name;
列的SQLAlias语法
SELECTcolumn_nameASalias_nameFROMtable_name;
Alias实例:使用表名称别名
假设我们有两个表分别是:"Persons"和"Product_Orders"。我们分别为它们指定别名"p"和"po"。
现在,我们希望列出"JohnAdams"的所有定单。
我们可以使用下面的SELECT语句:
SELECTpo.OrderID,p.LastName,p.FirstNameFROMPersonsASp,Product_OrdersASpoWHEREp.LastName='Adams'ANDp.FirstName='John'