`
冷寒冰
  • 浏览: 245222 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sql分页存储过程(返回记录数)

    博客分类:
  • sql
 
阅读更多
if里面处理的是带搜索条件的
else里面处理的是不带搜索条件的




-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:andy
-- Create date: 2013.3.6
-- Description: 获取正在制作的课件分页存储过程
-- =============================================
CREATE PROCEDURE dbo.sp_vendor_coursewareMakingPagging
    @PageIndex INT ,
    @PageSize INT ,
    @CoursewareName NVARCHAR(256) = '' ,
    @VendorId INT ,
    @StartDate DATETIME = '' ,
    @EndDate DATETIME = ''
AS
    BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
        SET NOCOUNT ON;
        SET NOCOUNT ON;
        DECLARE @StartIndex INT;
        DECLARE @EndIndex INT;
        SET @PageIndex = @PageIndex - 1;
        SET @StartIndex = @PageIndex * @PageSize + 1;
        SET @EndIndex = ( @PageIndex + 1 ) * @PageSize;
--pager list
        IF ( @StartDate != ''
             AND @EndDate != ''
           )
            BEGIN
                WITH    a AS ( SELECT   [CoursewareId] ,
                                        [GroupGuid] ,
                                        [ParentId] ,
                                        [Version] ,
                                        [CoursewareName] ,
                                        [Description] ,
                                        [IsPublish] ,
                                        ec.[StatusId] ,
                                        [CoursewareTypeId] ,
                                        [VendorId] ,
                                        ec.[PictureListId] ,
                                        ec.[CreateUserId] ,
                                        ec.[CreateDate] ,
                                        ec.[ModifyUserId] ,
                                        ec.[ModifyDate] ,
                                        epl.URL ,
                                        ROW_NUMBER() OVER ( ORDER BY ec.CreateDate DESC ) AS row_num
                               FROM     [dbo].[E_Courseware] AS ec
                                        JOIN dbo.E_PictureList AS epl ON ec.PictureListId = epl.PictureListId
                               WHERE    ec.IsPublish = 0
                                        AND ec.VendorId = @VendorId
                                        AND ec.StatusId = 0
                                        AND ec.CoursewareName LIKE '%'
                                        + @CoursewareName + '%'
                                        AND ec.CreateDate BETWEEN @StartDate AND @EndDate
                             )
                    SELECT  *
                    FROM    a
                    WHERE   row_num BETWEEN @StartIndex AND @EndIndex;
--record count
                SELECT  ISNULL(COUNT(ec.CoursewareId), 0) AS RecourdCount
                FROM    [dbo].[E_Courseware] AS ec
                        JOIN dbo.E_PictureList AS epl ON ec.PictureListId = epl.PictureListId
                WHERE   ec.IsPublish = 0
                        AND ec.VendorId = @VendorId
                        AND ec.StatusId = 0
                        AND ec.CoursewareName LIKE '%' + @CoursewareName + '%'
                        AND ec.CreateDate BETWEEN @StartDate AND @EndDate
                   
            END
        ELSE
            BEGIN
                WITH    a AS ( SELECT   [CoursewareId] ,
                                        [GroupGuid] ,
                                        [ParentId] ,
                                        [Version] ,
                                        [CoursewareName] ,
                                        [Description] ,
                                        [IsPublish] ,
                                        ec.[StatusId] ,
                                        [CoursewareTypeId] ,
                                        [VendorId] ,
                                        ec.[PictureListId] ,
                                        ec.[CreateUserId] ,
                                        ec.[CreateDate] ,
                                        ec.[ModifyUserId] ,
                                        ec.[ModifyDate] ,
                                        epl.URL ,
                                        ROW_NUMBER() OVER ( ORDER BY ec.CreateDate DESC ) AS row_num
                               FROM     [dbo].[E_Courseware] AS ec
                                        JOIN dbo.E_PictureList AS epl ON ec.PictureListId = epl.PictureListId
                               WHERE    ec.IsPublish = 0
                                        AND ec.VendorId = @VendorId
                                        AND ec.StatusId = 0
                                        AND ec.CoursewareName LIKE '%'
                                        + @CoursewareName + '%'
                             )
                    SELECT  *
                    FROM    a
                    WHERE   row_num BETWEEN @StartIndex AND @EndIndex;
--record count
                SELECT  ISNULL(COUNT(ec.CoursewareId), 0) AS RecourdCount
                FROM    [dbo].[E_Courseware] AS ec
                        JOIN dbo.E_PictureList AS epl ON ec.PictureListId = epl.PictureListId
                WHERE   ec.IsPublish = 0
                        AND ec.VendorId = @VendorId
                        AND ec.StatusId = 0
                        AND ec.CoursewareName LIKE '%' + @CoursewareName + '%';
                 
            END
    END
 
     

分享到:
评论

相关推荐

    oracle分页查询并返回总记录数据存储过程

    oracle分页查询并返回总记录数据的存储过程

    sqlserver 分页存储过程

    分页存储过程存储过程实现,返回当前页,显示数据区间、总页数、总记录数、反馈信息等

    ASP+SQL Server带条件查询的分页存储过程及其ASP调用实例

    "ASP+SQL Server带条件查询的分页存储过程及其ASP调用实例" 本文主要介绍了如何使用ASP和SQL Server实现带条件查询的分页存储过程,并提供了实例代码和调用示例。该实例已经在IIS+ASP+SQL Server环境中进行了调试,...

    SQLServer2008分页存储过程和java调用

    PagingOperation数据库SQLServer2008分页存储过程(和java调用存储过程源代码): 调用存储过程进行分页查询速度快,尤其是数据量超过50万条的表非常重要,此代码是我们项目中使用的,实际使用情况稳定,也希望大家...

    万能sql分页存储过程

    传递正确的参数实现 分页 返回 总页数 记录数

    ORACLE分页存储过程

    在分页存储过程中,主要理解了变量的动态赋值和输入输出参数的使用就非常简单了 下面为调用方法: var c_Preccount number; var c_Ppagecount number; var c_cur refcursor; exec proc_SpPag(1,'SELECT * FROM T_...

    java调用oracle分页存储过程

    java调用oracle分页存储过程,存储过程保存在sql文件夹下,可以直接运行。 实现了输入表名、每页显示记录数、当前页、排序字段,返回总记录数,总页数,和结果集。

    SQL Server 在分页获取数据的同时获取到总记录数

    SQL Server 获取数据的总记录数,有两种方式: 1.先分页获取数据,然后再查询一遍数据库获取到总数量 2.使用count(1) over()获取总记录数量 SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY Id DESC) rn, ...

    SQL Server存储过程同时返回分页结果集和总数

    按照我们正常的业务逻辑,存储过程数据首先是分页,其次接受若干查询条件,返回分页结果集的同时还需要返回记录总数给客户端。  我对于这样一个业务存储过程总结如下:1、内核层,通常也就是要查询的字段或者要计算...

    分页存储过程

    这个分页存储过程需要8个参数(其中一个是输出参数:返回记录条数),这八个参数分别为: (1)要分页的表名,或者视图的名称。 (2)要分页的表名或视图的主键(要分页的表或视图必须有主键) (3)当前页码(即...

    分页存储过程(二)在sqlserver中返回更加准确的分页结果

    在我的使用SQL Server2005的新函数构造分页存储过程中,我提到了使用ROW_NUMBER()函数来代替top实现分页存储过程。 但是时间长了,又发现了新问题,就是主子表的分页查询。例如:订单表和订单明细表,要求是查询订单...

    SQLSERVER Pager store procedure分页存储过程

    代码如下:SET ANSI_NULLS ON GO SET QUOTED_...甚至可以是嵌套SQL:(Select * From Tab Where ID>1000) Tab @Field nvarchar(800) = ‘*’, — 返回记录集字段名,”,”隔开,默认是”*” @OrderBy nvarchar(100

    SQL通用存储过程分页,支持多表联合

    SQLPager存储过程 代码如下: ALTER proc [dbo].[SqlPager] ( @tblName varchar(255), — 表名(注意:可以多表链接) @strGetFields varchar(1000) = ‘*’, — 需要返回的列 @OrderfldName varchar(255)=”, — 排序...

    PL/SQL中编写Oracle数据库分页的存储过程

    此文以oracle数据库中的SCOTT用户的EMP表为例,用PL/SQL Developer编写一个分页存储过程,要求是:可以输入表名,每页显示记录数,当前页,返回总记录数,总页数和返回的结果集。 由于需要返回查询出来的结果集,...

    数据库分页存储过程代码

    1. 首先,声明变量 `@cmd`、`@uprecord`、`@Op` 和 `@max_min`,用于存储动态SQL语句、记录数、操作符和最大/最小计算。 2. 根据 `@sort` 参数,设置操作符 `@Op` 和最大/最小计算 `@max_min`。 3. 如果 `@curpage` ...

    JSP分页组件,JSP存储过程,URL参数传递

    1.分页记录集支持无限URL参数传递 2.执行SQL语句或存储过程 3.分页导航一步完成 4.可对SQL表执行操作返回影响行数

    邹建的分页存储过程改了一下

    邹建的分页存储过程–改了一下 因为邹建的分页存储过程不能返回记录总数,所以每次分页还又要统计一次,所以自己在里面加了个返回记录数,这下就好用了。 @iPageCount int OUTPUT –定义输出变量,放在@QueryStr...

    sql存储过程几个简单例子

    sql存储是数据库操作过程中比较重要的一个环节,对于一些初学者来说也是比较抽象难理解的,本文我将通过几个实例来解析数据库中的sql存储过程,这样就将抽象的事物形象化,比较容易理解。 例1: create proc proc_...

    经典SQL脚本大全

    │ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql │ │ 7.3.1 实现随机分页的通用分页存储过程.sql │ │ 7.3.2 根据分类表实现的分页存储过程.sql │ │ │ └─其他 │ sp_cursor.sql │ 基本方法.sql ...

    Sqlserver2000经典脚本

    限制列数的交叉表.sql │ ├─第07章 │ │ 7.1 splitpage.asp │ │ 7.2.1 TOP n 实现的通用分页存储过程.sql │ │ 7.2.2 字符串缓存实现的通用分页存储过程.sql │ │ 7.2.3 临时表...

Global site tag (gtag.js) - Google Analytics