`
冷寒冰
  • 浏览: 251528 次
  • 性别: 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 中创建一个用于分页查询并返回总记录数的存储过程。 #### 核心概念 1. **存储过程**:存储在数据库中的可编程对象,可以接受参数、执行操作、返回结果。 2. **分页**:通过限制查询...

    sqlserver 分页存储过程

    SQL Server 分页存储过程是一种在数据库中实现高效数据分页查询的方法。在大型数据集的展示中,分页是必不可少的,因为它允许用户逐步浏览数据,而不是一次性加载所有记录,从而提高用户体验并减少服务器负载。以下...

    速度最快sql分页存储过程

    ### 速度最快SQL分页存储过程详解 #### 概述 在数据库操作中,分页查询是一种非常常见的需求。为了提高查询效率并优化用户体验,设计一个高效、灵活且易于使用的分页存储过程变得尤为重要。本文将详细介绍一个被...

    3个高效率sql分页存储过程

    本文将详细介绍三个高效且参数最少的SQL分页存储过程,帮助你优化数据库性能,提升查询速度。 1. **基于ROW_NUMBER()函数的分页存储过程** ROW_NUMBER()是SQL Server中的一个窗口函数,它为每一行提供一个唯一的...

    sql分页 sqlserver中存储过程分页

    ### SQL Server 存储过程实现分页查询 #### 背景介绍 在数据库操作中,分页查询是非常常见的需求之一。特别是在数据量较大的场景下,分页不仅可以提高查询效率,还能改善用户体验。SQL Server 提供了多种方式进行...

    sql分页存储过程(无论那个表,表中有多少字段都可以用这一个存储过程)

    根据提供的文件信息,本文将详细解释一种通用的SQL分页存储过程实现方法,该方法能够适应不同的表结构、字段数量,并支持自定义排序字段与筛选条件。 ### SQL 分页存储过程解析 #### 标题说明 标题“sql分页存储...

    几款通用的sql分页存储过程

    ### 几款通用的SQL分页存储过程:深入解析与应用 在数据库操作中,分页查询是一项常见的需求,尤其当数据量庞大时,合理的分页可以极大地提高查询效率和用户体验。本文将深入分析两款通用的SQL分页存储过程,分别...

    sql 分页存储过程

    "sql分页存储过程"是指利用存储过程实现数据查询时的分页功能,这在大数据量的查询中尤为重要,因为直接一次性返回所有结果可能会消耗大量系统资源并导致响应时间过长。 分页查询是数据库中常用的一种技术,它允许...

    sql多表分页存储过程

    ### SQL多表分页存储过程解析 #### 标题与描述概述 该存储过程主要针对SQL Server 2005/2000环境下的多表分页查询进行了实现,并且已在SQL环境下测试通过。其核心功能是为用户提供一种灵活且高效的多表分页查询...

    标准SQLServer分页存储过程

    ### 标准SQL Server分页存储过程:深入解析与应用 在处理大量数据时,分页技术是提高数据展示效率和用户体验的关键。SQL Server提供的存储过程是实现分页功能的有效方式之一。本文将深入探讨微软C# .NET中的宠物...

    经典的分页、排序SQL 通用存储过程.rar

    本文将详细解析"经典的分页、排序SQL 通用存储过程"所涉及的知识点,并给出如何实现这样的存储过程。 首先,分页是数据库查询中的一种优化策略,用于限制每次查询返回的结果数量,从而避免一次性加载大量数据导致的...

    最简单的SQL Server数据库存储过程分页

    本文介绍一种简单且高效的SQL Server存储过程实现分页的方法,这种方法仅需提供SQL语句、每页的记录数以及当前页数即可快速完成分页操作。 #### SQL Server存储过程分页原理 在SQL Server中,通过存储过程实现分页...

    sqlserver+group by分组查询分页存储过程

    根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...

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

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

    SQL Server 存储过程及Oracle SQL语句分页

    首先,我们来看看SQL Server中的分页存储过程。这里展示的是一个名为`usp_GetPageData`的存储过程,用于获取分页数据。这个存储过程接收三个参数:`@pageSize`(每页记录数),`@pageIndex`(当前页数),以及`@...

    SQLServer2008分页存储过程和java调用

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

    SQL分页读取海量数据存储过程

    本文将深入探讨如何通过存储过程实现SQL分页读取海量数据。 首先,理解“分页”概念是至关重要的。分页是指将大量结果集分成多个小部分(页),每次只显示一页,用户可以逐页浏览。这在Web应用中非常常见,如搜索...

    asp.net分页vb.net源码(sql分页存储过程)

    这个存储过程可能接受参数如页码和每页记录数,返回对应页的数据。 综合这些信息,我们可以理解这是一个关于如何在ASP.NET VB.NET应用中使用SQL存储过程进行分页的示例。开发者可以通过EasyPager.vb组件调用存储...

    Sql分页存储过程、适合数据量大的分页

    本文将基于给定文件中的信息,深入探讨SQL分页存储过程的实现原理、优势及其实现方法,同时也会涉及一些高级数据库编程技巧,如动态SQL、触发器、函数和委托等。 ### 分页存储过程的重要性 当数据库中存储的数据量...

Global site tag (gtag.js) - Google Analytics