Sql Server和Oracle的sql语句分页
2012-12-12 10:27
531 查看
在sql2005以上的版本中可以用如下代码:
以上只是简单的分页,如果还有其他逻辑,比如排序 可以在over中加入排序的方法 test表 也可以换成子查询等其他逻辑
在oracle中,可以使用如下语句
参数由@变成了‘:’意义都是相同的! 只需在查询时传入需要的参数即可
下列语句只提供参考逻辑,各版本都可以使用
1.存储过程
3.
--@PageNo 是页码(要查询第几页),@pageSize是页容量(即每页显示多少条数据)
select * from ( select row_number() over(order by id) rn,* from Test) tb where rn >(@PageNo-1)*@pageSize and rn <=@PageNo*@pageSize
以上只是简单的分页,如果还有其他逻辑,比如排序 可以在over中加入排序的方法 test表 也可以换成子查询等其他逻辑
在oracle中,可以使用如下语句
select t2.* from (select rownum r,t1.* from test t1 where rownum<=:PageNo*:pageSize) t2 where t2.r>(:PageNo-1)*:pageSize
参数由@变成了‘:’意义都是相同的! 只需在查询时传入需要的参数即可
下列语句只提供参考逻辑,各版本都可以使用
1.存储过程
1.
declare @PageNo int ,@pageSize int; set @PageNo = 2 set @pageSize=20 select * from ( select row_number() over(order by object_id) rn,* from sys.objects) tb where rn >(@PageNo-1)*@pageSize and rn <=@PageNo*@pageSize
2.
SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) ORDER BY id
3.
SELECT TOP 页大小 * FROM table1 WHERE id > ( SELECT ISNULL(MAX(id),0) FROM ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) A ) ORDER BY id
相关文章推荐
- Oracle、SQL server、MySQL数据库中分页查询的SQL语句
- Oracle、SQL server、MySQL数据库中分页查询的SQL语句
- SQL SERVER ,ORACLE 8i,DB2三种数据库分页SQL语句
- Oracle、SQL Server、Access利用SQL语句进行高效果分页
- Oracle、SQL server、MySQL数据库中分页查询的SQL语句
- SQL server、MySQL、Oracle分页查询SQL语句
- Oracle、SQL Server、Access利用SQL语句进行高效果分页
- oracle 分页查询和sql server 分页查询 的sql语句
- oracle、SQL Server、Mysql分页语句备忘
- 3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现
- 3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现
- Oracle与MySQL的分页查询sql语句格式
- 从Oracle到Sql Server--Sql语句的智能翻译
- SQL Server 2000/2005 分页SQL — 单条SQL语句
- 简单oracle分页sql语句
- SQL Server 2000/2005 分页SQL — 单条SQL语句
- SQL Server 2000/2005 分页SQL — 单条SQL语句
- SQL Server 2000/2005 分页SQL — 单条SQL语句
- Oracle中实现分页的sql语句
- Oracle和SQL SERVER在SQL语句上的差别