SELECT [Column1] FROM VIEW1 WHERE ROW_NUMBER = 5;
給出了一個錯誤:ROW_NUMBER錯誤
Msg 207, Level 16, State 1, Line 2 Invalid column name 'ROW_NUMBER'.
任何建議,爲什麼? ROW_NUMBER會自動着色爲粉紅色,這意味着從我的知識「關鍵字」 - 這意味着爲什麼Sql Server認爲它應該是一列,並說該列不存在?
預先感謝您。
SELECT [Column1] FROM VIEW1 WHERE ROW_NUMBER = 5;
給出了一個錯誤:ROW_NUMBER錯誤
Msg 207, Level 16, State 1, Line 2 Invalid column name 'ROW_NUMBER'.
任何建議,爲什麼? ROW_NUMBER會自動着色爲粉紅色,這意味着從我的知識「關鍵字」 - 這意味着爲什麼Sql Server認爲它應該是一列,並說該列不存在?
預先感謝您。
你處理的方式查詢是錯誤的,因爲
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
。在使用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()這樣的
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
您可以使用查看而不是表
好一個空也.. – Ambrose 2012-07-20 07:49:49