sql 2000 分页
create PROCEDURE [dbo].[Proc_GetPageList]
(
@Tables varchar(1000), --表名
@PK varchar(100), --主键
@Fields varchar(1000) = '*', --查询的字段
@SortField varchar(200) = NULL, --排序的字段
@SortType varchar(10)= 'ASC', --排序方式
@PageIndex int = 1, --页码索引
@PageSize int = 10, --页码大小
@Filter varchar(1000) = NULL, --过滤条件
@PageCount int = 1 output, ----查询结果分页后的总页数
@RecordCounts int = 1 output ----查询到的记录数
)
AS
SET NOCOUNT ON
declare @FieldName nvarchar(50)
declare @SqlSort nvarchar(250)
declare @SqlCount nvarchar(2000)
declare @FromTemp nvarchar(1000)
declare @SqlResult nvarchar(4000)
declare @PageMinBound int
declare @PageMaxBound int
--------首先生成排序方法---------
if @SortType='ASC' --升序
begin
if not(@SortField is null)
set @SqlSort = ' Order by ' + @SortField
else
set @SqlSort = ' Order by ' + @PK
end
else --降序
begin
if not(@SortField is null)
set @SqlSort = ' Order by ' + @SortField + ' DESC'
else
set @SqlSort = ' Order by ' + @PK + ' DESC '
end
--------生成查询语句--------
if @Filter is null or @Filter='' --没有设置显示条件
begin
set @FromTemp = ' From ' + @Tables
end
else
begin
set @FromTemp = ' From ' + @Tables + ' where ' + @Filter
end
set @SqlCount= 'select @RecordCounts=Count(' + @PK + ') '+@FromTemp
----取得查询结果总数量-----
exec sp_executesql @SqlCount,N'@RecordCounts int out ',@RecordCounts out
--取得分页总数
if @RecordCounts<= @PageSize
set @PageCount = 1
else
set @PageCount = (@RecordCounts / @PageSize) + 1
if @PageIndex=1
begin --第一页用TOP方法来获取当前页记录
set @SqlResult='select top '+str(@PageSize)+' '+@Fields+' '+@FromTemp+' '+@SqlSort
end
else
begin --用临时表获取当前页计录
set @PageMinBound=(@Pageindex-1)*@Pagesize
set @PageMaxBound=@PageMinBound+@Pagesize
create table #Pageindex (id int identity(1,1) not null,nid int)
set rowcount @PageMaxBound
set @SqlResult='insert into #Pageindex(nid) select '+@PK+' '+@FromTemp+' '+@SqlSort
set @SqlResult=@SqlResult+' select '+@Fields+' from '+@Tables+' a,#Pageindex p
where a.'+@PK+'=p.nid and p.id>'+str(@PageMinBound)+' and p.id<='+str(@PageMaxBound)
end
print @SqlResult
exec sp_executesql @SqlResult
GO
sql 2000 分页的更多相关文章
- SQL 数据分页查询
最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5 ...
- sql语句分页多种方式ROW_NUMBER()OVER
sql语句分页多种方式ROW_NUMBER()OVER 摘自: http://www.cnblogs.com/CodingArt/articles/1692468.html 方式一 select to ...
- (3.15)常用知识-sql server分页
推荐使用row_number over()方法,或2012以上使用offset PageSize = PageNumber = 方法一:(最常用的分页代码, top / not in) UserId ...
- Jsp页面,结果集分页和sql(top)分页的性能对比
jsp页面两种分页模式: 第一种: 结果集分页,主要代码见下面: ResultSet rs=stmt.executeQuery(sql); ResultSetMetaData md=rs.getMet ...
- sql语句分页多种方式
sql语句分页多种方式ROW_NUMBER()OVER sql语句分页多种方式ROW_NUMBER()OVER 2009年12月04日 星期五 14:36 方式一 select top @pageSi ...
- SQL存储过程分页(通用的拼接SQL语句思路实现)
多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...
- SQL语句 分页实现
1 通过sql实现分页. select top 5 * from judgeorder where id not in (select top 10 id from judgeorder order ...
- [.NET] SQL数据分页查询
[.NET] SQL数据分页查询 程序下载 范例下载:点此下载 原始码下载:点此下载 NuGet封装:点此下载 数据查询 开发系统时,使用C#执行SQL查询指令,就可以从SQL数据库里查询所需数据. ...
- sql 2000以及2005以上获取数据库中所有的表(不包括系统表)
---------------------------------------------------------------------------- --sql 2005以上数据库 --- 获取数 ...
随机推荐
- c - 对数组进行排序(通过指针的指针)
通过指针的指针,以及一个指针数组,对实际数组元素进行排序,有一个优点,就是排序过程交换的只有指针数组中的值,而不是实际的数组的元素.当实际元素中的对象很大,特别是结构体等类型时,这样做是很有好处. 下 ...
- Geodatabase - 修改字段别名(Field Alias)
以下代码演示的是通过个人数据库打开要素类,并对指定的字段别名进行修改,其中,需要注意的是,不能通过Engine中的AxMapControl直接获得,如 //直接获得IFeatureClass. //E ...
- oracle 优化——索引与组合索引
1.索引结构.第一张图是索引的官方图解,右侧是存储方式的图解. 图中很清晰的展示了索引存储的状况. 在leaf 节点中存储了一列,索引所对应项的 :值,rowId,长度,头信息(控制信息) 这样我们就 ...
- MVC---404页面配置
参考地址1:http://benfoster.io/blog/aspnet-mvc-custom-error-pages 参考地址2:https://msdn.microsoft.com/en-us/ ...
- C#类的基本用法
Preson类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- 原生拖拽,拖放事件(drag and drop)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Activiti工作流学习-----基于5.19.0版本(2)
二.activiti.cfg.xml的其他bean节点配置 2.1 新特性:Job Executor和Async Executor 从5.17.0版本的activiti开始提供作业执行者(Job Ex ...
- perl 学习笔记
一:基础 1:安装perl centos: yum -y install perl 官网:https://www.perl.org/ 升级到5.22:先下载,执行./i ...
- Mybatis 开发中遇见的异常及处理
1 异常信息: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.Bin ...
- (转)iOS Wow体验 - 第五章 - 利用iOS技术特性打造最佳体验
本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第五章译文精选,其余章节将陆续放出.上一篇:Wow ...