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
このコンテキストでは使用できません。WHERE句での使用例は次のROW_NUMBER
とおりです。
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
テーブルの代わりにビューを使用できます