通过存储过程进行分页查询的SQL示例

简介: --创建人:zengfanlong --创建时间:2014-7-28 10:51:15 --说明:根据公司简写代码获取当前待同步的气瓶档案数据(分页获取) ALTER PROCEDURE [UP_GasBottles_GetSyncData_ByPage] ( @C...
--创建人:zengfanlong
--创建时间:2014-7-28 10:51:15
--说明:根据公司简写代码获取当前待同步的气瓶档案数据(分页获取)
ALTER PROCEDURE [UP_GasBottles_GetSyncData_ByPage]
    (
      @CompanyAbbrCode NVARCHAR(255) = '' ,
      @LatastRowVersion_BigInt BIGINT ,
      @CurrentMaxRowVersion_BigInt BIGINT ,
      @StartPageIndex INT = 0 ,
      @EndPageIndex INT = 0 ,
      @TotalCount INT OUTPUT
    )
AS 
    BEGIN
    
 --(1)、定义SQL查询
        SELECT  *
        INTO    #tempTb
        FROM    dbo.GasBottles AS gs WITH ( NOLOCK )
        WHERE   ISNULL(GasBottleNo, '') <> ''
                AND REPLACE(( SUBSTRING(gs.GasBottleNo, 1, 5) ), '-', '') = @companyAbbrCode
                AND ( CAST([RowVersion] AS BIGINT) > @LatastRowVersion_BigInt
                      AND CAST([RowVersion] AS BIGINT) <= @CurrentMaxRowVersion_BigInt
                    )
    
    
        IF ( @StartPageIndex <= 0
             AND @EndPageIndex <= 0
           ) 
            BEGIN 
               
                SELECT  *
                FROM    #tempTb
                
                --返回总页数
                SET @TotalCount = ( SELECT  COUNT(1)
                                    FROM    #tempTb
                                  )    
            END
        ELSE 
            BEGIN
            
 --分页获取数据
                SELECT  ROW_NUMBER() OVER ( ORDER BY GETDATE() ) AS 'Row' ,
                        *
                INTO    #tempAll
                FROM    #tempTb
             
             
                SELECT  *
                FROM    #tempAll
                WHERE   Row BETWEEN @StartPageIndex AND @EndPageIndex
    
                TRUNCATE TABLE #tempAll
                DROP TABLE #tempAll
            END
            
         --删除历史表  
        TRUNCATE TABLE #tempTb
        DROP TABLE #tempTb  
        
    END
GO

 

目录
相关文章
|
3月前
|
SQL 存储 关系型数据库
sql语句,索引,视图,存储过程
sql语句,索引,视图,存储过程
30 0
|
4月前
|
SQL 数据库
SQL 中的 MIN 和 MAX 以及常见函数详解及示例演示
SQL中的MIN()函数和MAX()函数用于查找所选列的最小值和最大值,分别。以下是它们的用法和示例:
157 0
|
4月前
|
SQL Oracle 关系型数据库
SQL 中的运算符与别名:使用示例和语法详解
IN运算符允许您在WHERE子句中指定多个值,它是多个OR条件的简写
212 0
|
4月前
|
SQL Oracle 关系型数据库
|
3月前
|
存储 SQL 缓存
4.2.1 SQL语句、索引、视图、存储过程
4.2.1 SQL语句、索引、视图、存储过程
|
1月前
|
存储 SQL 数据库
sql serve存储过程
sql serve存储过程
14 0
|
1月前
|
存储 SQL
物料清单应用输入模板的SQL存储过程设计
物料清单应用输入模板的SQL存储过程设计
|
2月前
|
SQL 开发框架 .NET
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
33 0
|
2月前
|
SQL 关系型数据库 MySQL
MySQL日期函数的SQL代码示例和使用场景
MySQL日期函数的SQL代码示例和使用场景
24 0
|
2月前
|
SQL BI
sql中从不同表查询并组合数据示例
sql中从不同表查询并组合数据示例