Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データのクエリと変更 » OLAP のサポート » SQL Anywhere の Window 関数 » ロー番号付け関数

 

ROW_NUMBER 関数

ROW_NUMBER 関数は、結果のローにユニークな番号を付けます。この関数はランキング関数ではありませんが、ランキング関数を使用できるどのような状況でも使うことができ、動作はランキング関数に似ています。

たとえば、派生テーブルで ROW_NUMBER を使用して、ROW_NUMBER の値について、ジョインであっても制限を追加できます。

SELECT *
FROM ( SELECT Description, Quantity,
       ROW_NUMBER( ) OVER ( ORDER BY ID ASC ) AS RowNum
FROM Products ) AS DT
WHERE RowNum <= 3
ORDER BY RowNum;

このクエリは、次の結果を返します。

Description Quantity RowNum
Tank Top 28 1
V-neck 54 2
Crew Neck 75 3

ランキング関数の場合と同様に、ROW_NUMBER には ORDER BY 句が必要です。

ウィンドウの ORDER BY 句がユニークでない式で構成される場合は、ROW_NUMBER は非決定的な結果を返すことがあり、同順が発生したときのローの順序は予測できなくなります。

ROW_NUMBER は、分割全体に対して機能するように設計されているため、ROWS 句や RANGE 句を ROW_NUMBER 関数とともに指定することはできません。

ROW_NUMBER 関数の構文の詳細については、ROW_NUMBER 関数 [その他]を参照してください。