用row_number来查询。
具体方法如下:
以sqlserver2008R2为例。
1、创建数据表插入数据:
create table test(id int,
name varchar(20))
insert into test values (1000,'张三')
insert into test values (1001,'李四')
insert into test values (1002,'王五')
insert into test values (1003,'赵六')
insert into test values (1004,'孙七')
insert into test values (1005,'杨八')
insert into test values (1006,'刘九')
insert into test values (1007,'李白')
insert into test values (1008,'杜甫')
insert into test values (1009,'白居易')
insert into test values (1010,'王安石')
insert into test values (1011,'范仲淹')
insert into test values (1012,'老子')
insert into test values (1013,'庄子')
insert into test values (1014,'孙子')
insert into test values (1015,'乔丹')
insert into test values (1016,'詹姆斯')
insert into test values (1017,'韦德')
insert into test values (1018,'罗德曼')
insert into test values (1019,'梅西')
insert into test values (1020,'内马尔')
2、执行语句,查询从id由小到大,然后找出第15到第20位的数据:
select t.id,t.name,t.rn from(select test.*,row_number() over(order by id) rn from test) t
where t.rn between 15 and 20
执行结果如下:
其中红框部分即为排名信息。
您好!数据库表中的数据是没有顺序的,所以你说的10-20条的数据就必须的有个条件,也就是说
where
某列名
=
XXX,那么咱们
以Id
列来说吧
sql
语句
select
top
10
*
from
表名
where
id
not
in(select
top
10
id
from
表名)
这个语句是子查询就是说先查出前10条数据,然后再去查这个表去掉前10条的剩下的所有数据的前10条。明白了吗?以下是
通用的分页语句,比较简单
SELECT
TOP
页大小
*
FROM
TestTable
WHERE
ID
NOT
IN
(SELECT
TOP
页大小*页数
id
FROM
表
ORDER
BY
id))
ORDER
BY
ID
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)