zoukankan      html  css  js  c++  java
  • 数据分页处理方法汇总(例子)

    1.SET ROWCOUNT ON
    SELECT TOP (PAGE+1)*SIZE TABLE.* FROM TABLE WHERE ORDER BY COLUMN
    SET ROWCOUNT ON SIZE
    SELECT TABLE.* FROM TABLE WHERE ORDER BY COLUMN
    特点:读出来的每页数据逆向排列

    2.TOP (和第一种方法原理一样)
    select top n * from
    (select top m * from tablename order by columnname) a
    order by columnname desc

    3.创建identity列(或者先创建带identity列的临时表,然后就很好处理)
    select identity(int) id0,* into #temp from tablename

    取n到m条的语句为:
    select * from #temp where id0 >=n and id0 <= m

    Example(方法2):

    exec
    HRPE_PeriodResultQueryByCond
    @KaoHePlan = N'01',
    @BeginPeriod = N'1',
    @EndPeriod = N'2',
    @WhereFilter = N'1=1 and HRPEKHWDDF_DXXZ =''1'' And HRPEKHWDDF_BKHDX = ''2dde7c1f-6ab2-4d5d-9bb9-2ad72ddbc99e''', @Size = 30,
    @Page = 1,
    @psFlag = N'',
    @psCompanyID = N'',
    @psQueryID = N'HRPE_PeriodResultQuery152677699063288832',
    @psFormatNo = N'01'
     1 exec 
     2 HRPE_PeriodResultQueryByCond 
     3 @KaoHePlan = N'01'
     4 @BeginPeriod = N'1'
     5 @EndPeriod = N'2'
     6 @WhereFilter = N'1=1 and HRPEKHWDDF_DXXZ =''1'' And HRPEKHWDDF_BKHDX = ''2dde7c1f-6ab2-4d5d-9bb9-2ad72ddbc99e'''@Size = 30
     7 @Page = 1
     8 @psFlag = N''
     9 @psCompanyID = N''
    10 @psQueryID = N'HRPE_PeriodResultQuery152677699063288832'
    11 @psFormatNo = N'01'
    12 
    13 SELECT TOP 30 D.* FROM 
    14     (SELECT TOP 30 HRPEKHWDDF_BKHDX = CASE A.HRPEKHWDDF_DXXZ   --(@page+1)*@Size
    15     WHEN '1' THEN (SELECT HRHYZD_ZGXM FROM HRHYZD WHERE HRHYZD_YGNM = A.HRPEKHWDDF_BKHDX)
    16     WHEN '2' THEN (SELECT HRORBMZD_MC FROM HRORBMZD WHERE HRORBMZD_NM = A.HRPEKHWDDF_BKHDX)
    17     WHEN '3' THEN (SELECT LSBZDW_DWMC FROM LSBZDW WHERE LSBZDW_DWBH = A.HRPEKHWDDF_BKHDX)
    18     END ,
    19     (SELECT HRPEKHQJ_KSRQ+'--'+HRPEKHQJ_JSRQ FROM HRPEKHQJ WHERE HRPEKHQJ_QJNM = A.HRPEKHWDDF_SSFA) AS HRPEKHQJ_KHQJ,
    20     (SELECT HRPEKHDXDF_TZDF FROM HRPEKHDXDF C WHERE C.HRPEKHDXDF_BKHDX = A.HRPEKHWDDF_BKHDX AND HRPEKHDXDF_SSFA = A.HRPEKHWDDF_SSFA ) AS  HRPEKHDXDF_HZDF,
    21     (SELECT HRPEJXDJDY_DJ FROM HRPEJXDJDY WHERE HRPEJXDJDY_DYFA ='01' AND B.HRPEKHDXDF_TZDF>HRPEJXDJDY_DFXX AND HRPEJXDJDY_DFSX >B.HRPEKHDXDF_TZDF OR B.HRPEKHDXDF_TZDF=HRPEJXDJDY_DFXX) AS HRPEKHWDDF_LEVEL , 
    22     SUM(CASE HRPEKHWDDF_KHWD WHEN '1' THEN HRPEKHWDDF_TZDF ELSE 0 END)[1]
    23     SUM(CASE HRPEKHWDDF_KHWD WHEN '2' THEN HRPEKHWDDF_TZDF ELSE 0 END)[2]
    24     SUM(CASE HRPEKHWDDF_KHWD WHEN '3' THEN HRPEKHWDDF_TZDF ELSE 0 END)[3] 
    25 FROM  HRPEKHWDDF A INNER JOIN HRPEKHDXDF B ON B.HRPEKHDXDF_BKHDX = A.HRPEKHWDDF_BKHDX AND B.HRPEKHDXDF_SSFA = A.HRPEKHWDDF_SSFA AND A.HRPEKHWDDF_DXXZ = B.HRPEKHDXDF_BKHDXXZ  
    26 WHERE 1=1 
    27     and HRPEKHWDDF_DXXZ ='1' 
    28     And HRPEKHWDDF_BKHDX = '2dde7c1f-6ab2-4d5d-9bb9-2ad72ddbc99e'
    29     AND A.HRPEKHWDDF_SSFA IN 
    30         (SELECT HRPESSFAZD_SSFANM FROM HRPESSFAZD WHERE HRPESSFAZD_KHFA =  '01' 
    31         AND HRPESSFAZD_STAT = '1' 
    32         AND HRPESSFAZD_KHQJ IN 
    33                             (SELECT HRPEKHQJ_QJNM FROM HRPEKHQJ 
    34                             WHERE HRPEKHQJ_KSRQ >= '20070101' 
    35                             AND HRPEKHQJ_JSRQ <= '20070228' 
    36                             AND HRPEKHQJ_ZT = '1' 
    37                             AND HRPEKHQJ_LXNM = (SELECT HRPEKHFAZD_KHLX FROM HRPEKHFAZD WHERE HRPEKHFAZD_FANM = '01') ))  
    38 GROUP BY B.HRPEKHDXDF_TZDF,HRPEKHWDDF_BKHDX,HRPEKHWDDF_DXXZ,HRPEKHWDDF_SSFA 
    39 Order By HRPEKHWDDF_BKHDX DESC,HRPEKHQJ_KHQJ DESCAS D    --子查询结束
    40 ORDER BY  HRPEKHWDDF_BKHDX,HRPEKHQJ_KHQJ 
    41 

    SELECT TOP 30 D.* FROM
        (SELECT TOP 30 HRPEKHWDDF_BKHDX = CASE A.HRPEKHWDDF_DXXZ   --(@page+1)*@Size
        WHEN '1' THEN (SELECT HRHYZD_ZGXM FROM HRHYZD WHERE HRHYZD_YGNM = A.HRPEKHWDDF_BKHDX)
        WHEN '2' THEN (SELECT HRORBMZD_MC FROM HRORBMZD WHERE HRORBMZD_NM = A.HRPEKHWDDF_BKHDX)
        WHEN '3' THEN (SELECT LSBZDW_DWMC FROM LSBZDW WHERE LSBZDW_DWBH = A.HRPEKHWDDF_BKHDX)
        END ,
        (SELECT HRPEKHQJ_KSRQ+'--'+HRPEKHQJ_JSRQ FROM HRPEKHQJ WHERE HRPEKHQJ_QJNM = A.HRPEKHWDDF_SSFA) AS HRPEKHQJ_KHQJ,
        (SELECT HRPEKHDXDF_TZDF FROM HRPEKHDXDF C WHERE C.HRPEKHDXDF_BKHDX = A.HRPEKHWDDF_BKHDX AND HRPEKHDXDF_SSFA = A.HRPEKHWDDF_SSFA ) AS  HRPEKHDXDF_HZDF,
        (SELECT HRPEJXDJDY_DJ FROM HRPEJXDJDY WHERE HRPEJXDJDY_DYFA ='01' AND B.HRPEKHDXDF_TZDF>HRPEJXDJDY_DFXX AND HRPEJXDJDY_DFSX >B.HRPEKHDXDF_TZDF OR B.HRPEKHDXDF_TZDF=HRPEJXDJDY_DFXX) AS HRPEKHWDDF_LEVEL ,
        SUM(CASE HRPEKHWDDF_KHWD WHEN '1' THEN HRPEKHWDDF_TZDF ELSE 0 END)[1],
        SUM(CASE HRPEKHWDDF_KHWD WHEN '2' THEN HRPEKHWDDF_TZDF ELSE 0 END)[2],
        SUM(CASE HRPEKHWDDF_KHWD WHEN '3' THEN HRPEKHWDDF_TZDF ELSE 0 END)[3]
    FROM  HRPEKHWDDF A INNER JOIN HRPEKHDXDF B ON B.HRPEKHDXDF_BKHDX = A.HRPEKHWDDF_BKHDX AND B.HRPEKHDXDF_SSFA = A.HRPEKHWDDF_SSFA AND A.HRPEKHWDDF_DXXZ = B.HRPEKHDXDF_BKHDXXZ 
    WHERE 1=1
        and HRPEKHWDDF_DXXZ ='1'
        And HRPEKHWDDF_BKHDX = '2dde7c1f-6ab2-4d5d-9bb9-2ad72ddbc99e'
        AND A.HRPEKHWDDF_SSFA IN
            (SELECT HRPESSFAZD_SSFANM FROM HRPESSFAZD WHERE HRPESSFAZD_KHFA =  '01'
            AND HRPESSFAZD_STAT = '1'
            AND HRPESSFAZD_KHQJ IN
                                (SELECT HRPEKHQJ_QJNM FROM HRPEKHQJ
                                WHERE HRPEKHQJ_KSRQ >= '20070101'
                                AND HRPEKHQJ_JSRQ <= '20070228'
                                AND HRPEKHQJ_ZT = '1'
                                AND HRPEKHQJ_LXNM = (SELECT HRPEKHFAZD_KHLX FROM HRPEKHFAZD WHERE HRPEKHFAZD_FANM = '01') )) 
    GROUP BY B.HRPEKHDXDF_TZDF,HRPEKHWDDF_BKHDX,HRPEKHWDDF_DXXZ,HRPEKHWDDF_SSFA
    Order By HRPEKHWDDF_BKHDX DESC,HRPEKHQJ_KHQJ DESC) AS D    --子查询结束
    ORDER BY  HRPEKHWDDF_BKHDX,HRPEKHQJ_KHQJ

    结果:
    黄勇    20070101--20070131    61.0    6级    70.0    80.0    240.0
    黄勇    20070201--20070228    58.0    5级    0.0        0.0        63.0

    陆续添加 !!!
  • 相关阅读:
    [bzoj4025]二分图
    [hdu4010]: Query on The Trees
    [bzoj3514]: Codechef MARCH14 GERALD07加强版
    [hdu3943]K-th Nya Number
    [hdu5632][BC#73 1002]Rikka with Array
    在Eclipse中使用建立使用Gradle做依赖管理的Spring Boot工程
    Spring Boot 添加Shiro支持
    常用Linux命令
    HTML5之API
    JavaScript的客户端存储
  • 原文地址:https://www.cnblogs.com/adam/p/701665.html
Copyright © 2011-2022 走看看