SQL分页语句总结
2011-10-11 13:39
441 查看
---分页方法
------------1.top分页:
select top 10 * from Ordersa where a.orderid not in(select top 10 orderid from Orders order by orderid) order by a.orderid
------------2.MAX函数
---这种方法的前提是有唯一值的一个列。
select top 10 * from Orders a
where a.orderid>(select MAX(orderid) from (select top 10 orderid from Orders order by orderid) as orderid) order by orderid
-------------3.rowcount()方法
select * from (select ROW_NUMBER() over(order by orderid) as rownumber,* from Orders) myresult
where rownumber between 10 and 20
select top 10 * from (select ROW_NUMBER() over(order by orderid) as rownumber,* from Orders) myresult
where rownumber>10
with OrderedResult as(
select *,ROW_NUMBER() over(Order by orderid) as rownumber from Orders)select * from OrderedResult where rownumber between 10 and 20
------------4.建立临时表
begin
declare @pagelowerbound int
declare @pageupperbound int
set @pagelowerbound=10
set @pageupperbound=20
create table #pageindex([indexid] int identity(1,1) not null,[id] varchar(18))
declare @sql nvarchar(2000)
set @sql='insert into #pageindex([id]) select top '+CONVERT(nvarchar,@pageupperbound)
set @sql=@sql+' orderid from Orders'
execute sp_executesql @sql
select a.* from Orders a inner join #pageindex b on a.orderid=b.id where b.indexid>@pagelowerbound order by b.indexid
drop table #pageindexend
------------1.top分页:
select top 10 * from Ordersa where a.orderid not in(select top 10 orderid from Orders order by orderid) order by a.orderid
------------2.MAX函数
---这种方法的前提是有唯一值的一个列。
select top 10 * from Orders a
where a.orderid>(select MAX(orderid) from (select top 10 orderid from Orders order by orderid) as orderid) order by orderid
-------------3.rowcount()方法
select * from (select ROW_NUMBER() over(order by orderid) as rownumber,* from Orders) myresult
where rownumber between 10 and 20
select top 10 * from (select ROW_NUMBER() over(order by orderid) as rownumber,* from Orders) myresult
where rownumber>10
with OrderedResult as(
select *,ROW_NUMBER() over(Order by orderid) as rownumber from Orders)select * from OrderedResult where rownumber between 10 and 20
------------4.建立临时表
begin
declare @pagelowerbound int
declare @pageupperbound int
set @pagelowerbound=10
set @pageupperbound=20
create table #pageindex([indexid] int identity(1,1) not null,[id] varchar(18))
declare @sql nvarchar(2000)
set @sql='insert into #pageindex([id]) select top '+CONVERT(nvarchar,@pageupperbound)
set @sql=@sql+' orderid from Orders'
execute sp_executesql @sql
select a.* from Orders a inner join #pageindex b on a.orderid=b.id where b.indexid>@pagelowerbound order by b.indexid
drop table #pageindexend
相关文章推荐
- sqlserver&&mysql分页sql语句总结
- 关于SQL语句分页,网上也有很多啦,我贴一部分过来,并且总结自己已知的分页到下面,方便日后查阅。
- SQL点滴16—SQL分页语句总结
- SQL分页语句总结
- SQL点滴16—SQL分页语句总结
- mybatis的分页插件pagehelper-fix使用、数据库分页查询模板sql、总结mysql与oracle语句的区别
- MySQL数据库常用SQL语句总结一
- sql语句使用总结
- SQL语句效率问题的几点总结
- SQL分页语句
- ORACLE分页SQL语句
- 一条SQL语句搞定Sql2000 分页
- SQL语句分页
- SQL语句总结
- ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)
- 几条常见的数据库分页 SQL 语句(来源:Internet)
- 关于sql 语句的一些总结
- 【转】用标准的SQL语句实现查询记录分页
- Oracle行转列、列转行的Sql语句总结
- 分页SQL语句