SQL SERVER实现类似MySQL中的limit功能
方法1 :
top 和order by 实现,当数据表庞大的时候开小会很大
--查询@m 到@n 条数据
declare @m int;
declare @n int;
--- select top @m * from (select top @n * from stu order by id desc) as a -- 语法错误
select top (@m) * from (select top (@n) * from stu order by id desc) as a
方法2:
利用top 和唯一主键
--查询第3条 到 第8条
declare @m int =3;
declare @n int = 8;
select top (@n-@m+1) * from stu where id not in (
select top (@m-1) id from stu
同理 :查询从 第三条数据开始 往后数5条数据
declare @m int =3;
declare @n int = 5;
select top (@n) * from stu where id not in(
select top (@m-1) id from stu
)

本文介绍了在SQL Server中实现类似MySQL的LIMIT功能的方法,包括使用TOP和ORDER BY结合唯一主键实现数据分页,适用于从指定位置开始查询固定数量记录的场景。
3万+

被折叠的 条评论
为什么被折叠?



