zoukankan      html  css  js  c++  java
  • SqlServer分页方法

    -- 分页第1种方法 三重循环
    -- 分页查询第2页,每页有10条记录
    -- 先取前20页,然后倒序,取倒序后前10条记录,这样就能得到分页所需要的数据,不过顺序反了,之后可以将再倒序回来,也可以不再排序了,直接交给前端排序。
    -- 10(pageSize) 20(pageIndex*pageSize)

    select * from (
        select top 10 * from (
            select top 20 * from T_Base order by ID asc   --必须按照升序排序,否则查出来的结果是错误的
        ) as T 
        order by ID desc ) temp
    order by ID asc

    -- 分页第2种方法 利用Max(主键)
    -- 先top前11条行记录,然后利用max(id)得到最大的id,之后再重新再这个表查询前10条,不过要加上条件,where id>max(id)
    -- 10 pageSize 11 ((pageIndex-1)*pageSize)

    select top 10 * from T_Base where ID>
    (
        select max(ID) from (select top 20 ID from T_Base order by  ID asc) T
    ) 
    order by ID;

    -- 分页三  利用row_number()
    -- 直接利用row_number() over(order by id)函数计算出行数,选定相应行数返回即可,不过该关键字只有在SQL server 2005版本以上才有。
    -- 10 pageSize 20 ((pageIndex-1)*pageSize)

    select top 10 T.* from 
    (
        select ROW_NUMBER() over(order by ID asc) as rowsnumber, * from T_Base
    ) T where T.rowsnumber>20
  • 相关阅读:
    C语言本身并不提供输入输出语句
    大数据
    kdd cup 论文
    决策树比较
    推荐系统
    geohash
    MySQLdb 安装
    天池大数据比赛
    逻辑回归
    矩阵分解
  • 原文地址:https://www.cnblogs.com/zxh8080/p/13419699.html
Copyright © 2011-2022 走看看