查询以插入行号以对结果进行分页

Query to insert row number to paginate results

我尝试执行一个从 table 获取所有数据的查询。我想使用分页,因为它们是结果中的一个结构。所以我尝试在查询中插入分页,例如

我试的是这个

Select ROW_NUMBER() OVER (ORDER BY reputation) as row, *
From users
Where reputation > 1000000 AND  row >= ##StartRow:INT?1##
AND         row    <= ##EndRow:INT?50000##
ORDER BY    row

我收到的错误是这样的:

Invalid column name 'row'. Invalid column name 'row'.

我能做什么?

将您的查询包装在 派生的 table 中(即子查询):

select * from
(
  Select ROW_NUMBER() OVER (ORDER BY reputation) as row, *
  From users
  Where reputation > 1000000
) dt
where   row >= ##StartRow:INT?1##
  AND   row    <= ##EndRow:INT?50000##
ORDER BY    row

请注意,根据 ANSI/ISO SQL 标准,row 是保留字,因此您可能需要将该列名称分隔为 "row"。 (或将其更改为其他内容。)