Oracle SQL
でのMySQLの制限の複製 mysqlの
句は、注文後に指定された数の行数を取得することを簡素化します。 ただし、Oracleには別のアプローチが必要ですLIMIT
なぜrownumが十分ではないのか
oracleの
を使用すると、予測不可能な結果が得られることを意味します。
ROWNUM
効果的なサブクエリアプローチORDER BY
ROWNUM
信頼できる方法では、最初にデータを注文するためのサブクエリが含まれ、次に制限に
上限と下限の定義
より正確な制御については、最小行数と最大行数の両方を指定するには、より複雑なクエリが必要です。
ROWNUM
<code class="language-sql">SELECT * FROM ( SELECT * FROM emp ORDER BY sal DESC ) WHERE ROWNUM <= 5;</code>
Oracle 12c以降のバージョンは、
と:
を使用してクリーンなソリューションを提供します。<code class="language-sql">SELECT * FROM ( SELECT a.*, ROWNUM rnum FROM ( SELECT * FROM <your_table> ORDER BY <your_column> ) a WHERE ROWNUM <= :MAX_ROW_TO_FETCH ) WHERE rnum >= :MIN_ROW_TO_FETCH;</code>
この合理化された構文は、Oracleの行の制限とオフセットを管理するためのより直感的な方法を提供します。
以上がOracle SQLクエリでMySQLの制限条項を効果的にエミュレートする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。