• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 扩展性很好的一个分页存储过程分享

扩展性很好的一个分页存储过程分享

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了分页,存储过程等相关知识,希望本文的分享对您有所帮助

扩展性很好的一个分页存储过程分享,需要的朋友可以参考下。

这是经常用的一个分页存储过程 希望大家指点不足
代码如下:
USE [a6756475746]
GO
/****** Object: StoredProcedure [dbo].[tbl_order_SearchWhereAndPage] Script Date: 11/01/2011 09:37:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[tbl_order_SearchWhereAndPage]
@AllCount int OUTPUT,
@PageIndex int,
@PageSize int ,
@minDate datetime,
@maxDate datetime
AS
begin
DECLARE @PageLower int
set @PageLower=@PageSize * @PageIndex
DECLARE @PageUpper int
set @PageUpper= @PageLower + @PageSize - 1

DECLARE @SearchSQL nvarchar(4000)
set @SearchSQL='SELECT * ,( ROW_NUMBER() OVER (ORDER BY [ID] DESC) -1 ) AS RowNumber FROM tbl_order WHERE (1=1) '
DECLARE @SearchSQLCount nvarchar(4000)
set @SearchSQLCount='SELECT @count=Count(*) FROM tbl_order WHERE (1=1) '
declare @Result [varchar](5000)
set @Result=''

if @minDate>convert(datetime,'1900-1-2')
begin
set @Result=@Result+' and oDeliveryDate >= '''+convert(varchar(20),@minDate)+''''
end
if @maxDate > convert(datetime,'1900-1-2')
begin
set @Result=@Result+' and oDeliveryDate <= '''+convert(varchar(20),dateadd(dd,1,@maxDate))+''''
end
set @SearchSQLCount=@SearchSQLCount+@Result
set @SearchSQL=@SearchSQL+@Result

SET @SearchSQL = 'WITH t AS (' + @SearchSQL +' )
SELECT * FROM t
WHERE [RowNumber] BETWEEN '+ convert(varchar(50),@PageLower) +' AND '+ convert(varchar(50),@PageUpper) + '
ORDER BY RowNumber '

exec (@SearchSQL)

exec sp_executesql @SearchSQLCount ,N'@count as int out' ,@AllCount out

print @SearchSQL

print @AllCount
end
exec (@Result)
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 基于mysql查询语句的使用详解
  • MySQL查询优化:连接查询排序limit(join、order by、limit语句)介绍
  • MySQL与Oracle的语法区别详细对比
  • MSSQL根据ID进行分页实现方法
  • MySQL 百万级分页优化(Mysql千万级快速分页)
  • SQL语句详解 MySQL update的正确用法
  • mysql部分替换sql语句分享
  • mysql SQL语句积累
  • mysql 查询第几行到第几行记录的语句
  • Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架

相关文章

  • 2017-05-11MySQL的23个需要注意的地方
  • 2018-12-05SQL的Join使用图解教程
  • 2018-12-05sqlserver中Case的使用方法(上下篇)第1/2页
  • 2018-12-05有关mysql的一些小技巧
  • 2017-05-11Ubuntu下完美实现迁移MySQL数据库位置
  • 2018-12-05SQLServer 连接失败错误故障的分析与排除
  • 2018-12-05Oracle的NLS_COMP和NLS_SORT参数
  • 2018-12-05mysql 按中文字段排序
  • 2018-12-05Oracle 11g 触发器新增功能
  • 2018-12-05 [Java][DB][Cassandra] some useful link to understand the co

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL之-CentOS下my.cnf 配置日志类型及文件配置的示例代码
    • php程序员最常犯的11个mysql错误
    • 解析MySQL高速缓存启动方法及参数(query_cache_size)
    • mysql 搜寻附近N公里内数据的实例
    • MySQL基础教程15 — SQL语法之数据操作语句DML—DELETE语法
    • 如何使用mysql表连接
    • 浅谈mysql 自定义函数
    • SqlServer 2005 中字符函数的应用
    • sql server 临时表 查找并删除的实现代码
    • sql添加数据后返回受影响行数据

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有