本文介绍了使用 Row_Number() 选择行的子集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Select id, name, ROW_NUMBER() OVER (ORDER BY id asc) as 'RowNo'
from customers
where RowNo between 50 AND 60
我正在尝试选择 50 到 60 之间的行子集.问题是RowNo"是无效的列名.
I am trying to select a subset of rows between 50 and 60 . The problem is 'RowNo' is an invalid column name.
谢谢
使用 SQL SERVER 2008 R2
Using SQL SERVER 2008 R2
推荐答案
使用您的查询作为子查询,如下所示:
Use your query as subquery like bellow:
select * from (
Select id, name, ROW_NUMBER() OVER (ORDER BY id asc) as [RowNo]
from customers
) t
where RowNo between 50 AND 60
您也可以使用 CTE,但是否选择一个而不是另一个阅读 CTE 和 SubQuery 之间的区别? 并检查执行计划.
You can use CTE as well but whether to choose one over another read Difference between CTE and SubQuery? and check execution plan.
这篇关于使用 Row_Number() 选择行的子集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论