ホームページ > データベース > mysql チュートリアル > 注文後にOracleクエリの結果を制限する方法は?

注文後にOracleクエリの結果を制限する方法は?

DDD
リリース: 2025-01-25 08:32:09
オリジナル
359 人が閲覧しました

How to Limit Oracle Query Results After Ordering?

olacle

で順序付けされた結果を簡潔に制限します

Oracleの行の制限は、MySQLのようなよりシンプルなSQL方言とは異なります。 MySQLはLIMITを使用していますが、OracleはROWNUMの前にaROWNUM句でWHEREを直接使用すると、予測不可能な結果が得られます。ORDER BY

課題:制限する前の注文 この問題は、

ROWNUM句の前の ORDER BY解決策:正確な制御のためのサブQueries

行を正しく制限するには、注文後に、subquery:を使用します

この最初にテーブルを給与()下降で注文します。次に、外側クエリは、

<code class="language-sql">SELECT *
FROM (
  SELECT *
  FROM emp
  ORDER BY sal DESC
)
WHERE ROWNUM <= 10;</code>
ログイン後にコピー

開始列と終了の指定:empsal より正確な制御のために、上限と下限の両方を定義するには、ネストされたサブ征服が必要です。 ROWNUM

これは、給与で並べ替えた後、行21-30(包括的)を取得します

モダンオラクル(12c以降):簡略化された構文

Oracle 12C以降のバージョンは、クリーンなアプローチを提供します

この
<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バージョンがサポートしている場合は、この方法を使用します

以上が注文後にOracleクエリの結果を制限する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート