SQL limit的方法
大家都知道,Mysql 和 Oracle中都有可以实现LIMIT的方法,现在有了SQL:2003标准的分析函数,MSSQL 和DB2 都可以实现了
使用SQL:2003标准中的分析函数(窗口函数): ROW_NUMBER() ,RANK(),DENSE_RANK()
使用方法:
SELECT row_number() over (order by autoid desc) as rownumber, autoid,userid, matype,maxrate,setrate
FROM B_ProxySet
由此获得连续编号的列,做为LIMIT范围列,不管Autoid列是连续还是中断的,
下面是我引用该知识实现的LIMIT功能,使用命名子查询:
SELECT *
from (
SELECT row_number() over (order by autoid desc) as rownumber, autoid,userid, matype,maxrate,setrate
FROM B_ProxySet) as t
Where t.rownumber> 4 And t.rownumber <= 10
但具体效率和性能没有测试
如有不妥,请大家留言指出并改进