ROW_NUMBER错误

Sam*_*Sam 1 sql sql-server-2008

SELECT [Column1] FROM VIEW1 WHERE ROW_NUMBER = 5;
Run Code Online (Sandbox Code Playgroud)

给出错误:

消息207,级别16,状态1,行2无效的列名称"ROW_NUMBER".

有什么建议吗?ROW_NUMBER自动以粉红色着色,这意味着从我的知识"关键字" - 所以为什么Sql Server认为它应该是一列并且说该列不存在?

先感谢您.

Cur*_*urt 5

你不能ROW_NUMBER在这种情况下使用.ROW_NUMBER可以在此处看到在WHERE子句中使用的示例:

USE AdventureWorks2012;
GO
WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS RowNumber
    FROM Sales.SalesOrderHeader 
) 
SELECT SalesOrderID, OrderDate, RowNumber  
FROM OrderedOrders 
WHERE RowNumber BETWEEN 50 AND 60;
Run Code Online (Sandbox Code Playgroud)

资料来源:http://msdn.microsoft.com/en-us/library/ms186734.aspx


Pri*_*Jea 5

处理查询的方式是错误的,因为

ROW_NUMBER返回结果集分区中行的序号,从1开始,每个分区的第一行.

你可以试试

Select 
from 
(
        Select row_number() over (partition by x order by x)SrNo,* from x
)A
where A.SrNo=1
Run Code Online (Sandbox Code Playgroud)