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