2

我尝试执行一个从表中获取所有数据的查询。我想使用分页,因为它们是结果的一个缩影。所以我尝试像这样在查询中插入分页

我试过的是这个

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

我收到的错误是这样的:

列名“行”无效。列名“行”无效。

我能做些什么?

4

1 回答 1

2

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

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

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

于 2020-01-15T08:42:23.983 回答