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'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)