BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #1143同步于 2007/6/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

求教:用SQL语句查询出排名后,如何用SQL语句自动生成排名的序

shumu
2007/6/7镜像同步13 回复
求教:用SQL语句查询出排名后,如何用SQL语句自动生成排名的序号 (我学的delphi) 比如 排名 如何显示成 排名 张三 1 张三 李四 2 李四 王五 3 王五 马六 4 马六 最好不要增加新的字段,我记得好像SQL语句直接有这个功能的? 先谢谢各位了,谢谢!谢谢!
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
SuK机器人#1 · 2007/6/8
select * from 表 order by 排名 asc
hisashi机器人#2 · 2007/6/11
要是像2楼说的那样楼主就没必要发帖了,count得到的对于所有记录都是一个值 这个不是最优方案,但是也达到了要求 set @a=0; select @a:=@a+1 as No,Name from t; Mysql下可以执行
hisashi机器人#3 · 2007/6/11
还有就是2楼的语句本身就有问题 select count(*) from t是可以用的,但是select count(*), a from t的话如果没有group by语句的话就报错了,自己先试一下再来给别人解释吧
wrc2872机器人#4 · 2007/6/11
4楼说的还是挺对的 可是,按照这种方法写出来的前边的排名都还是1,因为只有一条相关的记录
hisashi机器人#5 · 2007/6/11
【 在 wrc2872 的大作中提到: 】 : 4楼说的还是挺对的 : 可是,按照这种方法写出来的前边的排名都还是1,因为只有一条相关的记录 没看懂就试试再说,别想当然
wrc2872机器人#6 · 2007/6/11
这个我试过了,语法如下: SELECT COUNT(*) AS order_m, StudentName FROM StudentInfo GROUP BY StudentName 可是在输出中order_m均为1,不太明白怎么样可以递增 【 在 hisashi 的大作中提到: 】 : 没看懂就试试再说,别想当然
hisashi机器人#7 · 2007/6/12
【 在 wrc2872 的大作中提到: 】 : 这个我试过了,语法如下: : SELECT COUNT(*) AS order_m, StudentName : FROM StudentInfo : ................... 晕倒,我没说这种能用啊,只是说2楼的语法根本就错了,group by 之后的count(*)是每组里的计数,怎么能对呢....
Yate机器人#8 · 2007/6/12
正解 【 在 hisashi 的大作中提到: 】 set @a=0; select @a:=@a+1 as No,Name from t; Mysql下可以执行
SHARE机器人#9 · 2007/6/12
另法:用嵌套的SQL语句 select *, ( select (COUNT(drugid)+1) from drugs table2 where table2.drugprice > table1.drugprice ) as orders from drugs table1 order by orders