select top 10 * from basicinfor where eid not in (select top 20 eid from basicinfor order by ename) order by ename
其中 10: 是 你每页显示的行数 ,可以通过参数获得。
后面的20: 是10×2(2 是第几页)得到的。
这句的sql 查询 其实 就是 每页10条记录的第3页记录打印出来的sql 语句。
还要提醒下 ,如果查询带条件 后面的子查询也要带上条件:
select top 10 * from basicinfor where ename like '%albaba%' and eid not in (select top 20 eid from basicinfor where ename like '%albaba%' order by ename) order by ename
这样查询出来的数据只有10条,效率远远大于 网上一般的 查询出所有记录然后在list 里面遍历出 想要的10条记录 效率要大的多,特别是在表中数据多的情况下 。
我看了下网上的sql server 翻页 好像没什么实质有用的代码 就把我自己写的 用的在项目的上代码拿 来和大家分享。
看了回帖是种美德