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 関数 [その他]を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |