chaosxin 发表于 2018-10-18 07:02:13

分页——SQL Server 对比 MySQL

  分页——SQL Server 对比 MySQL标题1
  原文见:http://www.sqlservercurry.com/2012/09/pagination-sql-server-vs-mysql.html
  使用最新版本的 SQL Server 2012 直接编写支持分页的语句了:
SELECT * FROM testing  ORDER BY sales_date
  OFFSET 0 ROWS
  FETCH NEXT 5 ROWS ONLY
  使用 MySQL 实现相同的功能:
SELECT * FROM testing  ORDER BY sales_date
  LIMIT 0,5
  标题二
  在我找到的另一篇博客里(http://www.c-sharpcorner.com/UploadFile/rohatash/offset-and-fetch-next-keywords-in-sql-server-2012/),不但介绍了使用 SQL Server 2012 实现分页,还讲到了在 SQL Server 2005/2008 中如何实现:
SELECT * FROM  (SELECT ROW_NUMBER() OVER(ORDER BY User_Id) AS number, *
  FROM userdetail) AS TempTable
  WHERE number > 0 AND number <= 4
  如果使用 SQL Server 2012,该作者提供了使用存储过程进行分页的写法:
CREATE PROCEDURE TestPaging  (
  @PageNumber INT,
  @PageSize INT
  )
  AS
  DECLARE @OffsetCount INT
  SET @OffsetCount = (@PageNumber-1)*@PageSize
  SELECT*
  FROM
  ORDER BY
  OFFSET @OffsetCount ROWS
  FETCH NEXT @PageSize ROWS ONLY
  GO
  获取第一页的调用方法:EXECUTE TestPaging 1, 5
获取第二页的调用代码:EXECUTE TestPaging 2, 5
页: [1]
查看完整版本: 分页——SQL Server 对比 MySQL