1、准备

 create table newtable
(
name VARCHAR(100),
yuwen INT(10),
shuxue INT(10)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO newtable (name, yuwen, shuxue) VALUES ('张三', 80, 67);
INSERT INTO newtable (name, yuwen, shuxue) VALUES ('李四', 98, 65);
INSERT INTO newtable (name, yuwen, shuxue) VALUES ('王五', 59, 98);
INSERT INTO newtable (name, yuwen, shuxue) VALUES ('赵六', 76, 87);
INSERT INTO newtable (name, yuwen, shuxue) VALUES ('田七', 69, 85);

2、实现

 select yuwentable.name studentname,yuwentable.yuwen yuwenscore ,cast(yuwentable.rank as SIGNED) yuwenrank,shuxuetable.shuxue shuxuescore,cast(shuxuetable.rank as SIGNED) shuxuescore
from
(
select (@yuwenrank:=@yuwenrank+1) as rank,name,yuwen
from newtable a,(select (@yuwenrank:=0)) b order by a.yuwen desc
) yuwentable ,
(
select (@shuxuerank:=@shuxuerank+1) as rank,name,shuxue
from newtable a,(select (@shuxuerank:=0)) b order by a.shuxue desc
) shuxuetable
where yuwentable.name = shuxuetable.name order by yuwentable.name

说明:在DbVisualizer中,代码执行后,RANK这列含有小数点,所以这里通过case函数将其转换整数

3、结果

studentname yuwenscore yuwenrank shuxuescore shuxuescore
----------- ---------- --------- ----------- -----------
张三 80 2 67 4
李四 98 1 65 5
王五 59 5 98 1
田七 69 4 85 3
赵六 76 3 87 2

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【刘超★ljc】。

本文版权归作者,禁止转载,否则保留追究法律责任的权利。

在sql中根据成绩显示学生排名的更多相关文章

  1. SQL中关于不能显示count为0的行的问题

    今天在写自己一个博客项目时遇到了一个数据库问题,因为对于数据库自己所知道的还是很浅显的,对一些查询语句不怎么熟悉. 我目前有一个文章表和评论表,评论表里面有个post_id对应文章表里面的id,想查询 ...

  2. 【SQL Server】利用游标将学生表中的成绩转化为绩点

    软件工程综合实践第一次作业 代码来源:班上同学的数据库大作业 alter table sc add GPA float; --加入绩点列 alter table sc ,);--将表按原始位置顺序编号 ...

  3. SQL常见面试题(学生表_课程表_成绩表_教师表)

    表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师 ...

  4. springboot中使用mybatis显示执行sql

    springboot 中使用mybatis显示执行sql的配置,在properties中添加如下 logging.你的包名=debug 2018-11-27 16:35:43.044 [DubboSe ...

  5. Sql中Rank排名函数

    A.对分区中的行进行排名 以下示例按照数量对指定清单位置的清单中的产品进行了排名. 结果集按 LocationID 分区并在逻辑上按 Quantity 排序. 注意,产品 494 和 495 具有相同 ...

  6. SQL Server 基础之《学生表-教师表-课程表-选课表》

    一.数据库表结构及数据 建表 CREATE TABLE Student ( S# INT, Sname ), Sage INT, Ssex ) ) CREATE TABLE Course ( C# I ...

  7. 50个常用sql语句 网上流行的学生选课表的例子

    50个常用sql语句 建表: --学生表tblStudent(编号StuId.姓名StuName.年龄StuAge.性别StuSex) --课程表tblCourse(课程编号CourseId.课程名称 ...

  8. SQL中进行转列的几种方式

    SQL中进行转列 在很多笔试的程序员中会有很多写SQL的情况,其中很多时候会考察行转列.那么这个时候如果能写出来几种行转列的SQL,会给面试官留下比较好的印象. 以下是这次sql转换的表结构以及数据 ...

  9. sql中的 where 、group by 和 having 用法解析

    --sql中的 where .group by 和 having 用法解析 --如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术 ...

随机推荐

  1. go语言基础之defer和匿名函数结合使用

    1.匿名函数结合使用 示例1: package main //必须 import "fmt" func main() { a := 10 b := 20 defer func() ...

  2. go语言基础之类型转换

    1.类型转换 示例: package main //必须有一个main包 import "fmt" func main() { //这种不能转换的类型,叫不兼容类型 var fla ...

  3. MapReduce性能调优记录

    MapReduce原理 要知道怎么对MapReduce作业进行调优前提条件是需要对Map-Reduce的过程了然于胸. Map-Reduce运行原理图: Map Side 1.从磁盘读取数据并分片 默 ...

  4. Ubuntu 14.04安装语言包后无法选择汉语问题解决

    如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 安装完语言包后.尽管里面有了汉语.可是是灰色的.例如以下图所看到的: watermar ...

  5. Tetris

    he Tetris game is one of the most popular computer games ever created. The original game was designe ...

  6. Python 更新dict

    更新dict 对需要更新的key-value 直接赋值即可dict是可变的,也就是说,我们可以随时往dict中添加新的 key-value.比如已有dict:d = { 'Adam': 95, 'Li ...

  7. MySQL之myisamchk

    Description, check and repair of MyISAM tables.Used without options all tables on the command will b ...

  8. 百度地图总结第二篇--POI检索功能

    简单介绍: 眼下百度地图SDK所集成的检索服务包含:POI检索.公交信息查询.线路规划.地理编码.行政区边界数据检索.在线建议查询.短串分享(包含POI搜索结果分享.驾车/公交/骑行/步行路线规划分享 ...

  9. Openerp workflow 工作流批注模块

    转自:http://blog.csdn.net/yeahliu/article/details/17207289 2013-12-22 添加workflow_stop标识,感谢广州-jerry 201 ...

  10. Some web Address

    1.可视化算法(Data Structure Visualizations) https://www.cs.usfca.edu/~galles/visualization/Algorithms.htm ...