Oracle Database 12c新機能 FETCHn ROWS 9 RDBMS 最初の 10 レコード取得 MySQL LIMIT 10 PostgreSQL FETCH FIRST 10 ROWS ONLY DB2 FETCH FIRST 10 ROWS ONLY SQL Server TOP 10 FETCH FIRST 10 ROWS ONLY Vertica LIMIT 10 SELECT first_name, last_name, salary FROM ( SELECT first_name, last_name, salary, ROW_NUMBER() OVER (ORDER BY salary DESC) ranking FROM employees) WHERE ranking <= 10 – Oracle Database 11g の記述
10.
Oracle Database 12c新機能 FETCHn ROWS 10 – Oracle Database 12c (12.1) から OFFSET n ROWS FETCH FIRST m ROWS ONLY 構文が利用可能 SQL> SELECT first_name, last_name, salary FROM employees ORDER BY salary DESC FETCH FIRST 10 ROWS ONLY ; – OFFSET n ROWS 句を指定して途中を抜き出すこともできる – 実行計画を確認すると内部的には ROW_NUMBER 関数を使っている 1 - filter("from$_subquery$_002"."rowlimit_$$_rownumber"<=10) 2 - filter(ROW_NUMBER() OVER ( ORDER BY "EMPLOYEES".“SALARY" )<=10)