[SQL Server实现Limit语句]MySQL有Limit语句,而SQL Server中没有。如何在SQL Server中实现类似的功能?


```java

  sql.append("select *  from student_sql ");
        if (requst.getSearchKey() != null && !" ".equals(requst.getSearchKey().trim()))
        {
            sql.append("where name like '%" + requst.getSearchKey().trim() + "%'");
        }
        sql.append("order by id asc limit ");
        sql.append(requst.getStart()).append(",").append(requst.getPagesize());


SQL Server使用top语句实现分页
取第一页
select top 10 * from 学生表 where id not in (select top 0 id from 学生表)
取第二页
select top 10 * from 学生表 where id not in (select top 10 id from 学生表)

与 mysql 最接近的,应该是 row_number 开窗函数


-- MsSql

select * from (
  select *,row_number() over(order by 排序方式) as rowid from table
) a
where rowid between 10 and 50


MySql

select * from table
order by 排序方式
limit 10 and 50