「Oracle」row_number()を指定してトップ行の検索結果を抽出するサンプル

書式
SELECT
カラムA、ROW_NUMBER() OVER (ORDER BY カラムB DESC) AS NUM
FROM
テーブル名 WHERE NUM <= XXX
使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT
*
FROM
(
SELECT
AGE,USERNAME
, ROW_NUMBER() OVER (ORDER BY AGE DESC) AS NUM
FROM
TEST_TABLE1
)
WHERE
NUM <= 3
SELECT * FROM ( SELECT AGE,USERNAME , ROW_NUMBER() OVER (ORDER BY AGE DESC) AS NUM FROM TEST_TABLE1 ) WHERE NUM <= 3
SELECT
  * 
FROM
  ( 
    SELECT
      AGE,USERNAME
      , ROW_NUMBER() OVER (ORDER BY AGE DESC) AS NUM 
    FROM
      TEST_TABLE1
  ) 
WHERE
  NUM <= 3

結果
AGE USERNAME NUM
32 user001 1
28 user002 2
25 user003 3

Oracle

Posted by arkgame