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

给SQL查询结果加序号

用SQL查询出结果后,想要在结果的每行前面加上序号怎么办?
这儿提供三种办法:
(例子中:
student为表名
stuid为student表中的字段
)

1、窗口函数:row_number()

-- 给查询后的结果加上序号
-- 方法一:row_number()
select row_number() over(order by a.stuid) `no`     
	,a.*
from     
	(select *
	from student
	) a
;

2、窗口函数:rank()

-- 方法二:rank()
select rank() over(order by a.stuid) `no`     
	,a.*
from     
	(select *
	from student
	) a
;

3:MySQL中不支持窗口函数时:

-- 方法三:MySQL中如果不支持窗口函数
select (@i:=@i+1) i     
	,a.*
from     
	(select *
	from student
	) a
	,(@i:=0) i 
;

版权声明:本文为weixin_44390462原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。