• sql分页


    1.MySql分页

     1 SELECT * FROM T LIMIT @pageIndex, @PageSize;  

    2.Slq Server 分页

    sql2000

    1 select top 10 *
    2 from table1
    3 where id not in(
    4     select top 开始的位置 id
    5     from table1) 

    sql2005-sql2008

    1   SELECT * FROM (SELECT *, ROW_NUMBER() OVER(Order by a.CreateTime DESC ) AS RowNumber FROM table_name AS a ) AS b WHERE RowNumber BETWEEN @PageIndex AND @PageSiez; 

    sql2012

    1 SELECT LastName, FirstName, EmailAddress
    2 FROM Employee
    3 ORDER BY LastName, FirstName, EmailAddress
    4 OFFSET 14000 ROWS
    5 FETCH NEXT 50 ROWS ONLY;
    如果将 OFFSET 和 FETCH作为分页解决方案,则需要为返回到客户端应用程序的每“页”数据运行一次查询。例如,要以 10 行为增量返回查询结果,您必须执行一次查询以返回 1-10行,然后再次运行查询以返回 11- 20行,依此类推。每个查询都是独立的,不会以任何方式与其他查询相关联。这意味着,与使用执行一次查询并在服务器上保持状态的游标不同,将由客户端应用程序负责跟踪状态。若要使用 OFFSET和 FETCH 在查询请求之间获得稳定的结果,必须满足以下条件:
    1.      查询使用的基础数据不能发生变化。即,不会更新查询处理的行,也不会在单个事务中使用快照或可序列化事务隔离执行查询中的所有页面请求。有关这些事务隔离级别的详细信息,请参阅SET TRANSACTIONISOLATION LEVEL (Transact-SQL) http://msdn.microsoft.com/zh-cn/library/ms173763.aspx。
    2.      ORDER BY 子句包含保证是唯一的列或列组合。
  • 相关阅读:
    【转】前端开发工程师如何在2013年里提升自己
    【转】再谈PHP、Python与Ruby
    【转】从知乎上看到“全栈开发者”讨论之后的自黑
    C#精髓 第四讲 GridView 72般绝技
    web网站第一次加载慢的解决方法
    SQL SERVER 提供了一些时间函数:
    Eval() 中数据格式化或格式化数据
    SQL SERVER 取本月上月日期
    LINQ to SQL连接数据库及语句
    权限管理
  • 原文地址:https://www.cnblogs.com/liuxiaoji/p/4723718.html
Copyright © 2020-2023  润新知