澳大利亚买车流程:请问一道基本的SQL的问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 04:03:34
有一张成绩表(course),只有两个字段,姓名(name)和成绩(score)。怎样用
一个SQL语句查询出某个学生的姓名,成绩以及在成绩表中的排名?
表结构如下:
表名:Course
姓名字段:name
成绩字段:score

分数一样的话,比如有两个第三的话,是一个第三,一个第四,还是并列第三啊?
先给你个基本的答案:
SELECT * FROM (
SELECT
NAME
,SCORE
,RANK() OVER (ORDER BY SCORE DESC) AS RK
FROM COURSE
)
WHERE NAME = 'XX'

根据数据库的不同,SQL有可能有所不同。该SQL只适用于DB2,ORACLE

select a.name as 姓名,a.score as 分数,(select count(*)+1 from [course] b where b.[score]>a.[score]) as 排名 from [course] a order by a.[score] desc"

查具体学生的话

select a.name as 姓名,a.score as 分数,(select count(*)+1 from [course] b where b.[score]>a.[score]) as 排名 from [course] a where a.name='学生名字' order by a.[score] desc"

select * from course where name='xxx'
xxx是你要查的学生的name就可以知道那个学员的分数
select * from course where score>'分数'
在用count求集合的个数+1

select a.name as 姓名,a.score as 分数,(select count(*) from [course] b where b.[score]>a.[score]) as 排名 from [course] a order by a.[score] desc"
select * from course where name='xxx'
xxx是你要查的学生的name

select * from course where name = 学生名字
这样就可以查出学生的名字,成绩,但是你所说的要成绩排名,要用程序编吧。