Tsql 如何使用row_number()指定条件?

Tsql 如何使用row_number()指定条件?,tsql,Tsql,我有以下疑问: select top 100 eid, cid, id, position, ROW_NUMBER() over(order by eid, cid, id) as record from standings where record = 2 这会产生一个无效列错误 如何仅检索特定的记录编号。我需要这样做,一次遍历一个结果,以便使用一个没有标识主键或主键的表进行数据转换 ;with T as ( select top 100 eid, cid, id, positio

我有以下疑问:

select top 100 eid, cid, id, position, ROW_NUMBER() over(order by eid, cid, id) as record  
from standings
where record = 2
这会产生一个无效列错误


如何仅检索特定的记录编号。我需要这样做,一次遍历一个结果,以便使用一个没有标识主键或主键的表进行数据转换

;with T as (
   select top 100 eid, cid, id, position, ROW_NUMBER() over(order by eid, cid, id) as record  
   from standings
)
select * from T where record = 2

您可以从CTE中提取if

;with T as (
   select top 100 eid, cid, id, position, ROW_NUMBER() over(order by eid, cid, id) as record  
   from standings
)
select * from T where record = 2

如果CTE不是批次中的第一条语句,则可能的重复;是强制性的,如果是,你不需要它,但添加一个仍然可以,我总是这样做;是强制性的,如果你不需要它,但添加一个仍然可以,我总是这样做。