Sql Server 通用分页
来源:互联网 发布:office办公软件学习 编辑:程序博客网 时间:2024/04/26 10:25
/**//*
过程说明:简单分页程序(要么分页,要么统计)
编 写 人:
编写时间:
*/
CREATE PROCEDURE Page
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@IsCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1000) = '' , -- 查询条件 (注意: 不要加 where)
@FieldsList varchar(255) -- 字段列表(要选出的字段)
AS
declare @strSQL varchar(1000), -- 主语句
@strTmp varchar(300), -- 临时变量
@strOrder varchar(400) -- 排序类型
set @strTmp = ''
set @strOrder = ''
--只统计总记录数
if @IsCount != 0
begin
if @strWhere != ''
set @strTmp = " where (" + @strWhere + ")"
set @strSQL = "select count(*) as Total from [" + @tblName + "]" + @strTmp
end
--不统计总记录,分页(查询表中所有记录)
else
begin
--如果是第一页
if @PageIndex = 1
begin
--排序
if @OrderType != 0
set @strOrder = " order by [" + @fldName +"] desc"
else
set @strOrder = " order by [" + @fldName +"] asc"
--条件
if @strWhere != ''
set @strTmp = " where (" + @strWhere + ")"
set @strSQL = "select top " + str(@PageSize) + " " +@FieldsList + " from ["
+ @tblName + "]" + @strTmp + " " + @strOrder
end
--如果不是第一页
else
begin
--排序
if @OrderType != 0
begin
set @strTmp = "<(select min"
set @strOrder = " order by [" + @fldName +"] desc"
end
else
begin
set @strTmp = ">(select max"
set @strOrder = " order by [" + @fldName +"] asc"
end
set @strSQL = "select top " + str(@PageSize) + " " + @FieldsList + " from ["
+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
+ @fldName + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)"
+ @strOrder
--条件
if @strWhere != ''
set @strSQL = "select top " + str(@PageSize) + " " + @FieldsList + " from ["
+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
+ @fldName + "] from [" + @tblName + "] where (" + @strWhere + ") "
+ @strOrder + ") as tblTmp) and (" + @strWhere + ") " + @strOrder
end
end
exec (@strSQL)
过程说明:简单分页程序(要么分页,要么统计)
编 写 人:
编写时间:
*/
CREATE PROCEDURE Page
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@IsCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1000) = '' , -- 查询条件 (注意: 不要加 where)
@FieldsList varchar(255) -- 字段列表(要选出的字段)
AS
declare @strSQL varchar(1000), -- 主语句
@strTmp varchar(300), -- 临时变量
@strOrder varchar(400) -- 排序类型
set @strTmp = ''
set @strOrder = ''
--只统计总记录数
if @IsCount != 0
begin
if @strWhere != ''
set @strTmp = " where (" + @strWhere + ")"
set @strSQL = "select count(*) as Total from [" + @tblName + "]" + @strTmp
end
--不统计总记录,分页(查询表中所有记录)
else
begin
--如果是第一页
if @PageIndex = 1
begin
--排序
if @OrderType != 0
set @strOrder = " order by [" + @fldName +"] desc"
else
set @strOrder = " order by [" + @fldName +"] asc"
--条件
if @strWhere != ''
set @strTmp = " where (" + @strWhere + ")"
set @strSQL = "select top " + str(@PageSize) + " " +@FieldsList + " from ["
+ @tblName + "]" + @strTmp + " " + @strOrder
end
--如果不是第一页
else
begin
--排序
if @OrderType != 0
begin
set @strTmp = "<(select min"
set @strOrder = " order by [" + @fldName +"] desc"
end
else
begin
set @strTmp = ">(select max"
set @strOrder = " order by [" + @fldName +"] asc"
end
set @strSQL = "select top " + str(@PageSize) + " " + @FieldsList + " from ["
+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
+ @fldName + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)"
+ @strOrder
--条件
if @strWhere != ''
set @strSQL = "select top " + str(@PageSize) + " " + @FieldsList + " from ["
+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
+ @fldName + "] from [" + @tblName + "] where (" + @strWhere + ") "
+ @strOrder + ") as tblTmp) and (" + @strWhere + ") " + @strOrder
end
end
exec (@strSQL)
- Sql Server 通用分页
- SQL Server 通用分页方案
- SQL Server 通用分页方案
- 通用分页存储过程sql-server
- 邹建SQL Server通用分页存储过程
- 邹建SQL Server通用分页存储过程
- 通用分页存储过程(SQL SERVER)
- SQL Server 2005通用分页代码
- SQL Server通用分页存储过程
- SQL Server通用分页存储过程
- SQL Server 2005通用分页代码
- Sql Server通用的分页存储过程
- 通用分页存储过程(SQL Server 2005)
- SQL Server 分页查询通用存储过程
- 通用分页显示查询存储过程(SQL Server)
- 通用高效分页存储过程代码(Sql Server)
- SQL Server 的通用分页显示存储过程
- sql server 的通用分页显示存储过程
- VC字节对齐全攻略
- 40种网站设计常用技巧
- Sql Server 小写金额转换成大写
- Tomcat5.5 Administration Web Application配置
- 软件的经济学
- Sql Server 通用分页
- 敏捷开发流程
- java面试大全
- “Java之父”James Gosling
- 半年没有关心这个博客了
- 转移成本
- 48 Ways to Wisdom - Way 4, Introduce Yourself to Yourself
- 关于C++中指针的概念
- SQL查询表结构的语句