Sql Server实现limit用法

案例前导数据

-- 浏览记录表:浏览id(自增属性),浏览用户名,浏览书籍名
drop table browserecord;
create table browserecord(
recordid int identity(1,1) not null primary key,
username varchar(255) not null,
bookname varchar(255) not null ,
)

insert into browserecord values('小红','C++程序设计');
insert into browserecord values('小蓝','C++程序设计');
insert into browserecord values('小红','C++程序设计');
insert into browserecord values('1','C++程序设计');
insert into browserecord values('1','网络安全');
。。。。。自己再加点吧

select * from browserecord;
复制代码

案例一:查前几条

今天发现sqlserver 里面不支持limit进行分页查询,想进行分页,怎么办呢,例如表数据如下,要查用户名为 1 的前5条记录

sql这么写

select TOP 5 *from browserecord where username = '1';
复制代码

案例二:查第几条到第几条

那么如果要查 第四条到第七条信息呢

则sql这么写

SELECT TOP 4 * FROM browserecord 
WHERE browserecord.recordid
NOT IN
(SELECT TOP 3 recordid FROM browserecord)
复制代码

如果要查 n-m之间的数据 第4行的数字是n-1,行的数字是m-n+1,从而实现分页

相关文章