带有额外WHERE和ORDER BY子句的MSSQL TOP(LIMIT)操作

时间:2011-04-27 14:35:40

标签: php sql-server limit

我第一次遇到在MSSQL中使用LIMIT子句的问题时感到很困惑。无法了解如何使分页脚本有效。

我想将LIMIT子句与额外的WHERE和ORDERY BY条件一起使用。欢迎任何帮助!

这是我的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查询?

提前致谢!

3 个答案:

答案 0 :(得分:5)

对于完整分页,您可以使用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

答案 1 :(得分:1)

SELECT TOP(50) FLD_NAME, FLD_AGE FROM TBL_USERS WHERE FLAG='1' ORDER BY FLD_AGE DESC 

对于完整的分页示例,请检查Google!

答案 2 :(得分:0)

SELECT TOP 50 FLD_NAME,FLD_AGE
FROM TBL_USERS
WHERE FLAG='1'
ORDER BY FLD_AGE DESC;

有关详细信息,请访问MSDNMSDN again