【发布时间】:2015-09-15 09:53:07
【问题描述】:
如果我有一个包含 1000 条记录的 sql 视图,我想检索行号 20 到 500 之间的记录。执行此操作的查询是什么?
或者
有没有办法在视图中添加行号之类的列?
【问题讨论】:
-
这个问题在stackoverflow.com/questions/19164698/…之前已经回答过
标签: sql sql-server database sql-server-2008
如果我有一个包含 1000 条记录的 sql 视图,我想检索行号 20 到 500 之间的记录。执行此操作的查询是什么?
或者
有没有办法在视图中添加行号之类的列?
【问题讨论】:
标签: sql sql-server database sql-server-2008
为此使用 SQL 中可用的 row_number 函数,例如
WITH tbl AS
(
SELECT
.. ,
ROW_NUMBER() OVER (ORDER BY ..) AS RowNumber
FROM
yourtable
)
SELECT
..
FROM
tbl
WHERE
RowNumber BETWEEN 20 AND 500
更新:
关于查询的性能,也请检查这个,
select .. from (SELECT
.. , Row_Number() over (order by ..) as rownumber
FROM
yourtable) as A
where
rownumber BETWEEN 20 AND 500
希望这会有所帮助。
【讨论】: