1 : mysql
select * from user order by Host limit m, n
结果返回的是第m+1行到第n行的数据集。
eg :
select * from user order by Host limit 1, 5
返回的是第2行到第5行的数据集
2 : sqlserver
SELECT *
FROM (SELECT TOP m *
FROM (SELECT TOP n *
FROM Customers) A
ORDER BY CustomerID DESC) B
ORDER BY CustomerID
获得的结果集数据为第n-m+1行到第n行。
对整个过程的解释:
首先按照升序得到前n行的结果集A,然后按照降序从A中得到后m行的结果集B,最后按照升序对B进行重新排序,返回结果集。
其中CustomerID为主键
eg :
SELECT *
FROM (SELECT TOP 5 *
FROM (SELECT TOP 10 *
FROM Customers) A
ORDER BY CustomerID DESC) B
ORDER BY CustomerID
的意思就是返回包含第6行到第10行的数据结果集。
3 : Oracle
select * from (select rownum r ,* from test) tt where tt.r > 50 and tt.r <= 100;
chinaunix网友2009-08-01 12:23:22
我写了个sqlserver与大家分享下。这个目前在网上没有见过我自己研究出来的 分页代码:select top 5 * from Liuyan where id not in(select top 页数*5 id from Liuyan)