sql语言,有一个成绩单表,已知学生姓名,如何查询名次?

sql语言,有一个成绩单表,已知学生姓名,如何查询名次?,第1张

1、创建测试表,

createtabletest_score(namevarchar2(20),scorenumber)

2、插入测试数据

insertintotest_scorevalues('张三',85)

insertintotest_scorevalues('李四',90)

insertintotest_scorevalues('王二',95)

insertintotest_scorevalues('吴七',83)

insertintotest_scorevalues('李六',66)

commit

3、查询表中全量数据,selectt.*,rowidfromtest_scoret

4、编写sql,根据学生姓名,查询学生名词,以学生‘李四’为例,成绩排名第二; selectt.*from(selectt.*,rank()over(orderbyscoredesc)rkfromtest_scoret)twheret.name='李四'

按照人名查出学生的各科成绩以及总成绩并按总成绩排名的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实现按总成绩倒叙排列。

/iknow-pic.cdn.bcebos.com/5d6034a85edf8db1650ea8660623dd54564e7494"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/5d6034a85edf8db1650ea8660623dd54564e7494?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/5d6034a85edf8db1650ea8660623dd54564e7494"/>

扩展资料

上述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'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6757191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存