zoukankan      html  css  js  c++  java
  • 通过存储过程进行分页查询的SQL示例

    --创建人: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
  • 相关阅读:
    2021.2.28
    《构建之法》11~16章读后感
    《构建之法》6~10章读后感
    《构建之法》1~5章读后感
    4.7 wait notify
    4.8 wait,notify 的正确姿势
    4.9 park&unpark
    4.10 重新理解线程的状态转换
    第七章 Redis-6.2.1脚本安装
    第三十九章 Centos 7 系统优化脚本
  • 原文地址:https://www.cnblogs.com/51net/p/3979079.html
Copyright © 2011-2022 走看看