新婚システムエンジニアのブログ

新婚システムエンジニア(SE)のブログです。IT系の話や資格関連、結婚生活について書きます

【Oracle】【SQL】ROW_NUMBER関数で行番号取得する例

f:id:STSA:20180603221921p:plain

OracleのROW_NUMBER関数で行番号取得する例についてです。

例に使うテーブルとデータは以下を使用します。

CREATE TABLE Table1
    ("id" int, "dvalue" int, "ddata" varchar2(1))
;

INSERT ALL 
    INTO Table1 ("id", "dvalue", "ddata")
         VALUES (1, 200, 'A')
    INTO Table1 ("id", "dvalue", "ddata")
         VALUES (2, 100, 'B')
    INTO Table1 ("id", "dvalue", "ddata")
         VALUES (3, 400, 'C')
SELECT * FROM dual;

上記のSQLを実行すると次のようなデータができます。
f:id:STSA:20180603140348p:plain

では、このデータでdvalueを高い順(降順)の順番で行番号を取得してみます。
SQLは以下のようなSQLになります。

select "id" , "dvalue", "ddata" , row_number() over (order by "dvalue" desc) from TABLE1;

実行結果
f:id:STSA:20180603134435p:plain

ROW_NUMBER関数で行番号取得する例についてでした。

関連記事
stsa.hatenablog.com