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认为它应该是一列并且说该列不存在?
先感谢您.
你不能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
处理查询的方式是错误的,因为
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)