问个sql语句关于排名的问题

fonganzen 2005-11-17 06:24:40
数据表中有个得分(mark)字段,和(rank)字段 怎么通过得分得到排名并写入数据库

单位代码(code) 得分(mark) (rank)字段
1 70 3
2 90 1
3 80 2
4 60 4
…………………………………………………………………………………………
得分字段可以录入 如何根据得分得到排名并写入rank字段?
...全文
136 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
heyixiang 2005-11-17
  • 打赏
  • 举报
回复
如果随时都会插入新记录的话,排名这个字段完全可以不要,不然每插入一条都要更新一次.
qljs 2005-11-17
  • 打赏
  • 举报
回复
up
xf_luo 2005-11-17
  • 打赏
  • 举报
回复
UPDATE
tablename tbl1
SET
tbl1.rank = (SELECT
count(*)
FROM
tablename tbl2
WHERE
tbl2.mark >= tbl1.mark
)
沝林 2005-11-17
  • 打赏
  • 举报
回复
根据分数得到排名:

SELECT RANK(70) WITHIN GROUP (ORDER BY mark DESC) as "Rank of 70"
FROM tablename;

你可以先把rank字段全部更新成排名,然后再根据录入的得分直接得到排名

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧