SqlServer数据库中的分页语句

摘要:下文将为您介绍SqlServer数据库中的分页SQL语句,该语句一次查询,数据库只返回一页的数据,供您参考,希望能对您有所帮助。

下文将为您介绍SqlServer数据库中的分页SQL语句,该语句一次查询,数据库只返回一页的数据,供您参考,希望能对您有所帮助。

SqlServer分页SQL语句特点:一次查询,数据库只返回一页的数据。而不是取出所有的数据。

说明:

pagesize: 每页显示记录数

cureentpage:当前页数

select * from (   select TOP pagesize * FROM ( SELECT TOP pagesize*cureentpage   * from user_table   ORDER BY id ASC ) as aSysTable   ORDER BY id DESC ) as bSysTable   ORDER BY id ASC

例子说明:

假如数据库表如下:

user_table:

id:主键,自增

username:字符

password:字符

假设有80条记录,每页显示10条记录,id 从1到80

现在按照id升序排列取出第三页的数据应该为:所取得记录的id 应该为 21到30。

这时该语句应该为:

select * from (   select TOP 10 * FROM ( SELECT TOP 30   * from user_table   ORDER BY id ASC ) as aSysTable   ORDER BY id DESC ) as bSysTable   ORDER BY id ASC

原理如下:

(1)先按照id从小到大升序取出30条记录(3*10),也就是:id 在 1-30 之间的记录 (SELECT TOP 30   * from user_table   ORDER BY id ASC)

(2)然后按照ID降序排列这30条记录,得到记录为id 在:从30到 1

(3)然后在这些30条记录中取出前10条记录:取得的记录为:id 在30-21之间。这就是我们需要的数据,但这时是按照降序排列的,不符合要求。

(4)最后在重新排序得到最终我们需要的数据。id在21-30之间。

希望对大家有所帮助。

SQL Server2005中跨库执行SQL语句的方法

http://database.51cto.com  2010-09-06 11:46  BaNdit②.NET  博客园  我要评论(0)

摘要:下面为您介绍SQL Server2005中跨库执行SQL语句的方法,供您参考,如果您在这方面遇到了问题,不妨一看,相信会对您有所帮助。

下面为您介绍SQL Server2005中跨库执行SQL语句的方法,供您参考,如果您在这方面遇到了问题,不妨一看,相信会对您有所帮助。

select * from OPENDATASOURCE(

'SQLOLEDB',

'Data Source=IP;User ID=;Password='

).库名.dbo.表名

注意:

1.表名前一定要加上dbo,不然会报“配置选项 'Ad Hoc Distributed Queries' 不存在,也可能是高级选项”

2.如果执行时报“SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。”错误,那么请执行下面的语句

exec sp_configure 'show advanced options',0

reconfigure

exec sp_configure 'Ad Hoc Distributed Queries',0

reconfigure