sql语句分页

1.第一种方式  新生成列辅助计算

语法

SELECT * FROM (

SELECT ROW_NUMBER() OVER(ORDER BY 排序的字段 desc) AS PagedNumber, * FROM 表  where 列=条件

) AS u WHERE PagedNumber BETWEEN ((索引-1) * 显示的数量 + 1) AND (索引 * 显示的数量)

使用

SELECT * FROM (

SELECT ROW_NUMBER() OVER(ORDER BY id desc) AS PagedNumber, * FROM 表  where 机构=1003

) AS u WHERE PagedNumber BETWEEN ((8-1) * 10 + 1) AND (8 * 10)

2.第二种方式 not in 

语法

select *  from (

Select top 查询的数量 * from (select *  from 表 where 条件=条件) as b where b.唯一列(比如id) not in(select top 索引 c.唯一列(比如id) from(select *  from 表 where 条件=条件) as c order by 排序的列 desc 

) order by 排序的列 desc ) as t

使用

select * from ( 

Select top 10 * from 表 as b 

where b.ID not in(select top 0 c.ID 表 as c 

order by ID desc ) order by ID desc ) as t  

 

你可能感兴趣的:(sqlserver)