SELECT [Column1] FROM VIEW1 WHERE ROW_NUMBER = 5;
给出一个错误:
消息 207,级别 16,状态 1,第 2 行无效的列名称“ROW_NUMBER”。
关于为什么的任何建议?ROW_NUMBER 自动以粉红色着色,这意味着据我所知“关键字” - 那么为什么 Sql Server 认为它应该是一个列并说该列不存在?
先感谢您。
SELECT [Column1] FROM VIEW1 WHERE ROW_NUMBER = 5;
给出一个错误:
消息 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;
您处理查询的方式是错误的,因为
ROW_NUMBER 返回结果集分区内行的序号,每个分区的第一行从 1 开始。
你可以试试
Select
from
(
Select row_number() over (partition by x order by x)SrNo,* from x
)A
where A.SrNo=1
你不能像那样使用 ROW_NUMBER()
SELECT * FROM
(
SELECT [Column1], ROW_NUMBER() OVER(ORDER By [Column1] ASC) As Row
FROM VIEW1
) x
WHERE Row = 5;
你必须先定义ROW_NUMBER
。试试这个...
SELECT [column1] FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber,
[column1]
FROM <tablename>
) AS xyz
WHERE rownumber = 5
例如:
SELECT EmpName FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY empId ASC) AS rownumber,
EmpName
FROM EmpMaster
) AS EmpTable
WHERE rownumber = 5
您可以使用View而不是Table