具有额外WHERE和ORDER BY子句的MSSQL TOPLIMIT操作

问题描述

|| 第一次遇到在MSsql中使用LIMIT子句的问题时,我感到困惑。无法获取如何使分页脚本正常工作。 我想在额外的WHERE和ORDERY BY条件下使用LIMIT子句。欢迎任何帮助! 这是我的MySQL查询
$query = MysqL_query(\"SELECT FLD_NAME,FLD_AGE FROM TBL_USERS WHERE FLAG=\'1\' ORDER BY FLD_AGE DESC LIMIT 0,50\");

//rows_per_page = 50;
如何将该MySQL查询转换为MSSQL查询? 提前致谢!     

解决方法

对于完整的分页,可以使用ROW_NUMBER()函数,如下所示:
select * from 
(select Row_Number() over ( ORDER BY FLD_AGE DESC ) as RowIndex,FLD_NAME,FLD_AGE FROM    
TBL_USERS WHERE FLAG=\'1\') as pager    Where pager.RowIndex >= 10 and pager.RowIndex < 40
    ,
SELECT TOP(50) FLD_NAME,FLD_AGE FROM TBL_USERS WHERE FLAG=\'1\' ORDER BY FLD_AGE DESC 
有关完整的分页示例,请检查Google!     ,
SELECT TOP 50 FLD_NAME,FLD_AGE
FROM TBL_USERS
WHERE FLAG=\'1\'
ORDER BY FLD_AGE DESC;
有关更多信息,请再次访问MSDN和MSDN。