易截截图软件、单文件、免安装、纯绿色、仅160KB

优化的ms sql server分页sql语句

优化的ms sql server分页sql语句
发布时间: 2009-8-15 00:00 |  发布作者: hjh |   |  查看: 3次
特点:一次查询,数据库Databnse只返回一页的数据。而否则取出所有的数据。
说明:
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
例子说明:
假如数据库Databnse表如下:
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
思想如下:
先按照id从小到大升序取出30条记录(3*10),也就:id 在 1-30 之间的记录 (SELECT TOP 30 * from user_table ORDER BY id ASC)
然后按照ID降序排列这30条记录,得到记录为id 在:从30到 1
然后在这一部份30条记录中取出前10条记录:取得的记录为:id 在30-21之间。这就咱们需求的数据,但这时是按照降序排列的,不符合要求。
最后在重新排序得到最终咱们需求的数据。id在21-30之间。
期望对大部份人有所帮助。
如有疑难问题,期望和大部份人一块沟通。
email:yanek@126.com


相关文档:

oracle 相關的sql語句

数据字典dict总是属于Oracle用户sys的。
  1、用户:
   select username from dba_users;
  改口令
   alter user spgroup identified by spgtest;
  2、表空间:
   select * from dba_data_files;
   select * from dba_tablespaces;//表空间
   select tablespace_name,sum(bytes), sum(b ......

SQL Trigger(触发器)

触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。Microsoft® SQL Server™ 允许为任何给定的 INSERT、UPDATE 或 DELETE 语句创建多个触发器。
1、INSERT触发器:可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的触发器。
       ......

经典SQL语句大全

一、基础
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说 ......

mysql数据库sql文件导入导出命令

  1.导出整个数据库
         mysqldump -u 用户名 -p 数据库名 > 导出的文件名
         mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
  2.导出一个表
        mysqldump -u 用户名 -p 数据库名 表名> ......

SQL Server2005 xml字段使用方法 1对多表记录读取

在SQL Server2005中有FOR XML 用法,可以讲一个表作为一个字段。
我的设计想法主要是用在1对多的关系中表读取的问题。
表A 表B
在A中有一条记录而在B中有多条记录可以参照下面的写法:(我的项目中用到的,修改了字段主要是演示用)
select A.*,
(SELECT a,  CAST(G_Univalence AS NVARCHAR(48)) AS G_Univa ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号