
sql中查询排名名次
表:student————————————————idclassnamescore————————————————1601张三782601李四853601王五564602...
表:student
————————————————
id class name score
————————————————
1 601 张三 78
2 601 李四 85
3 601 王五 56
4 602 张三 84
5 602 李四 92
————————————————
要求:求出601班张三在该班级中的名次
(注意只是一个名次哦,而不是全部学生的排名)
并说明response.write后该怎么写
在asp中把查询到的结果返回到页面上显示。因为student中有几个班,而我要求的只是某个学生在该班中的名次。
我觉得思路应该是先查询class=601中的数据进行排序,再查询name=张三的名次,但我不知道怎样写。请会的大大们说明下。谢谢 。如果能帮我解决这个问题,再加送30分。
注:如果同一个班中有成绩相同的学生,那他们的排名也要相同。 展开
————————————————
id class name score
————————————————
1 601 张三 78
2 601 李四 85
3 601 王五 56
4 602 张三 84
5 602 李四 92
————————————————
要求:求出601班张三在该班级中的名次
(注意只是一个名次哦,而不是全部学生的排名)
并说明response.write后该怎么写
在asp中把查询到的结果返回到页面上显示。因为student中有几个班,而我要求的只是某个学生在该班中的名次。
我觉得思路应该是先查询class=601中的数据进行排序,再查询name=张三的名次,但我不知道怎样写。请会的大大们说明下。谢谢 。如果能帮我解决这个问题,再加送30分。
注:如果同一个班中有成绩相同的学生,那他们的排名也要相同。 展开
4个回答
展开全部
sql语句是这样的
select count(*) from student where class=601 and score>(select score from student where name='张三')
这个就求出了在601班的张三前有多少个人,他的名就是这个返回值+1,这个问题不关排序鸟事。做个统计就行了!
你不会是要在页面直接调用sql语句吧!
常规方法是把这个放在一个业务类传给数据访问层做处理后返回结果传给页面
你问的response.write这个有点吃力吧!
select count(*) from student where class=601 and score>(select score from student where name='张三')
这个就求出了在601班的张三前有多少个人,他的名就是这个返回值+1,这个问题不关排序鸟事。做个统计就行了!
你不会是要在页面直接调用sql语句吧!
常规方法是把这个放在一个业务类传给数据访问层做处理后返回结果传给页面
你问的response.write这个有点吃力吧!
展开全部
ORACLE的SQL语句可以这么写:
SELECT N FROM
(SELECT ROWNUM AS N,STUDENT.* FROM STUDENT GROUP BY SCORE)T
WHERE T.CLASS = '601'
AND T.NAME = '张三'
SELECT N FROM
(SELECT ROWNUM AS N,STUDENT.* FROM STUDENT GROUP BY SCORE)T
WHERE T.CLASS = '601'
AND T.NAME = '张三'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实数据库就有排序功能的,你看下你的数据库设置吧(网上一些教程也有教的)。
你要加一个名次的列(也可生成一个临时的数据表,用存储过程)
如果只是你这样程序会比较复杂的,数据多了也影响运行速度
你要加一个名次的列(也可生成一个临时的数据表,用存储过程)
如果只是你这样程序会比较复杂的,数据多了也影响运行速度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用asp查询?
直接rs("score")就是名次了
建议多找点例子看看
直接rs("score")就是名次了
建议多找点例子看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询