olacle
で順序付けされた結果を簡潔に制限しますOracleの行の制限は、MySQLのようなよりシンプルなSQL方言とは異なります。 MySQLはLIMIT
を使用していますが、OracleはROWNUM
句でWHERE
を直接使用すると、予測不可能な結果が得られます。ORDER BY
課題:制限する前の注文
この問題は、
この最初にテーブルを給与()下降で注文します。次に、外側クエリは、 開始列と終了の指定: モダンオラクル(12c以降):簡略化された構文
構文は、ページネーションのために読みやすく効率的です。 Oracleバージョンがサポートしている場合は、この方法を使用しますROWNUM
句の前のORDER BY
解決策:正確な制御のためのサブQueries <code class="language-sql">SELECT *
FROM (
SELECT *
FROM emp
ORDER BY sal DESC
)
WHERE ROWNUM <= 10;</code>
emp
sal
より正確な制御のために、上限と下限の両方を定義するには、ネストされたサブ征服が必要です。
ROWNUM
<code class="language-sql">SELECT *
FROM (
SELECT a.*, ROWNUM rnum
FROM (
SELECT * FROM emp ORDER BY sal DESC
) a
WHERE ROWNUM <= 30
)
WHERE rnum >= 21;</code>
以上が注文後にOracleクエリの結果を制限する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。