说到分页就不得不提Mysql的limit了,感觉比sql server要简便一些;如果要在sql server2008中实现Limit的话,可以使用子查询;
sql server中的分页(假设说法)关键词是top,通常和order by(排序)一起使用;如果不排序,查询得到的可能并不是自己想要的结果。
先说一下正序与逆序排序
如:
1 --查询在男职员工eid,hida;以hida顺序排序 2 select eid,hida 3 from emp 4 where flag=1 and sex='男' 5 order by hida 6 -- 逆序 7 select eid,hida 8 from emp 9 where flag=1 and sex='男' 10 order by hida desc
顺序是 asc,默认可以省略,逆序是desc(不可以省略),直接加在排序的每一个字段后面。
那么如果只想查询前3个,怎么办呢。直接在查询的时候加上top就可以了;
如:
1 --查询在男职员工eid,hida;以hida顺序排序前3位 top (表达式) 2 select top (3) eid,hida 3 from emp 4 where flag=1 and sex='男' 5 order by hida 6 -- 逆序前3位 7 select top (4-1) eid,hida 8 from emp 9 where flag=1 and sex='男' 10 order by hida desc
注意: top后面可以加表达式(可以是计算列)
那如果我们需要以顺序排列的第2条记录,或者以顺序排列的2-4这3行记录呢?
这个就需要系列07(子查询)的帮助了