按照人名查出学生的各科成绩以及总成绩并按总成绩排名的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'

温馨提示:答案为网友推荐,仅供参考
相似回答