只有两个字段用一个sql语句查询出某个学生的姓名、成绩以及在表
发布时间:2020-12-12 08:59:28 所属栏目:MsSql教程 来源:网络整理
导读:昨天去面试时遇到一个这样的问题: 有一张成绩表,只有两个字段,姓名和成绩。怎样用一个sql语句查询出某个学生的姓名,成绩以及在表中的排名? 一时间我也想不出具体实现,我就提了两种思路:一种是通过join关联一个查询出他排名的sql语句;一种是通过group
昨天去面试时遇到一个这样的问题: 有一张成绩表,只有两个字段,姓名和成绩。怎样用一个sql语句查询出某个学生的姓名,成绩以及在表中的排名? 实现语句: SELECT 学生,成绩,(SELECT COUNT(*) FROM 表 WHERE a.成绩<=成绩) AS 排名 FROM 表 AS a 方法二: declare @Course table(name varchar(100),cj int) insert into @Course select 'a',99 union all select 'b',66 union all select 'c',88 select * from ( select (select 1+count(name) from @Course where cj>t.cj) mc,name,cj from @Course t ) tem where name='b' 如果有成绩相同的记录的时候,goodspeed的语句确实有一些瑕疵,但是我根据他的语句稍微修改了一下就很完美了。 SELECT name,score,(SELECT COUNT(*)+1 FROM course WHERE a.score<score) AS sort FROM course AS a order by sort 更多请到这里查看评论 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |