SQL:如何给sql查询结果加上序号

@i为变量声明方式
:=为变量赋值方式(set赋值时也可以使用=,但使用select只能使用:=)
(SELECT @i:=0) number是为了每次查询都使变量从0开始(序号从1开始),使变量归零重置,若不加则下次查询的序号会在本次查询的基础上累加
number(SELECT @i:=0)的别名
注意:(SELECT @i:=0) 一定要写select!!!
语法:

select (@i:=@i+1) number     
,a.*
from 
table as a
,(SELECT @i:=0) number

**示例: 查询学生平均成绩及其名次 **

-- 查询学生平均成绩及其名次 
select (@i:=@i+1) number     
   ,a.*
from   
(SELECT a.s_name,AVG(b.s_score) as avgScore FROM student a
LEFT JOIN score b ON a.s_id = b.s_id
GROUP BY a.s_id ORDER BY avgScore DESC) a
   ,(SELECT @i:=0) number

你可能感兴趣的:(数据库,sql,数据库,mysql)