取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
select top 10 * from T_number where id >(select max(id) from (select top 30 id from T_number)as T_number ) 为什么本人取到的max(id)值是全表中最大的不是前30条最大的
select top 10 * from T_number where id >(select max(id) from (select top 30 id from T_number)as T_number ) 为什么本人取到的max(id)值是全表中最大的不是前30条最大的
解决方案
40
mssql 2012:
select * from T_number order by id OFFSET 30 ROW FETCH NEXT 10 rows only
mssql 2005:
; with tb as
(
select row_number() over(order by id) as rowid, * from T_number
)
select * from tb where rowid between 31 and 40
select * from T_number order by id OFFSET 30 ROW FETCH NEXT 10 rows only
mssql 2005:
; with tb as
(
select row_number() over(order by id) as rowid, * from T_number
)
select * from tb where rowid between 31 and 40