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分。
注:如果同一个班中有成绩相同的学生,那他们的排名也要相同。
展开
 我来答
KingloIsKinglo
2010-01-16 · 超过15用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:42.8万
展开全部
sql语句是这样的

select count(*) from student where class=601 and score>(select score from student where name='张三')
这个就求出了在601班的张三前有多少个人,他的名就是这个返回值+1,这个问题不关排序鸟事。做个统计就行了!

你不会是要在页面直接调用sql语句吧!
常规方法是把这个放在一个业务类传给数据访问层做处理后返回结果传给页面
你问的response.write这个有点吃力吧!
w001920110
2010-01-16 · TA获得超过252个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:297万
展开全部
ORACLE的SQL语句可以这么写:
SELECT N FROM
(SELECT ROWNUM AS N,STUDENT.* FROM STUDENT GROUP BY SCORE)T
WHERE T.CLASS = '601'
AND T.NAME = '张三'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mujin001
2010-01-16 · TA获得超过219个赞
知道答主
回答量:294
采纳率:0%
帮助的人:166万
展开全部
其实数据库就有排序功能的,你看下你的数据库设置吧(网上一些教程也有教的)。
你要加一个名次的列(也可生成一个临时的数据表,用存储过程)
如果只是你这样程序会比较复杂的,数据多了也影响运行速度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ypf199283
2010-01-16 · TA获得超过362个赞
知道小有建树答主
回答量:632
采纳率:0%
帮助的人:440万
展开全部
你用asp查询?
直接rs("score")就是名次了

建议多找点例子看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式