ホームページ > データベース > Oracle > Oracle の間隔クエリ ステートメントとは何ですか?

Oracle の間隔クエリ ステートメントとは何ですか?

WBOY
リリース: 2022-06-10 17:09:18
オリジナル
3548 人が閲覧しました

Oracle の間隔クエリ ステートメント: 1. 「select * from table name where rownum

Oracle の間隔クエリ ステートメントとは何ですか?

このチュートリアルの動作環境: Windows 10 システム、Oracle バージョン 12c、Dell G3 コンピューター。

Oracle の間隔クエリ ステートメントとは何ですか?

Oracle は rownum キーワードを使用してこのクエリを実装します。

Oracle の間隔クエリ ステートメントとは何ですか?

まず、

Oracle の間隔クエリ ステートメントとは何ですか?

テーブル内のデータは下図のとおりです(選択の結果)。 * from area ステートメント) :

1) テーブル

select * from area where rownum <= 8
ログイン後にコピー

の最初の 8 レコードをクエリします。クエリの結果は次のとおりです。

Oracle の間隔クエリ ステートメントとは何ですか?

2) 2 番目から 8 番目のレコードをクエリします。

この形式のクエリの場合、Oracle は mysql ほど便利ではありません。サブクエリまたはセット操作を使用して実装する必要があります。 。これを実現するには、次の 3 つの方法を使用できます:

A: select id,province,city,district from (select id,province,city,district,rownum as num from area) where num between 2 and 8;
ログイン後にコピー

まず、選択 ID、州、市、地区、rownum を area からの num に基づいて一時テーブルを取得します。この一時テーブルには rownum があります。 (疑似列。

rowid に似ていますが、rowid とは異なります。rowid は物理的に存在する列です。つまり、Oracle のどのテーブルにも rowid 列があり、rownum は物理的に存在しません)。

次に、一時テーブルでクエリを実行します。

B: select * from area where rownum <= 8 minus select * from area where rownum < 2;
ログイン後にコピー

セット マイナス演算子マイナスを使用すると、最初の選択には表示されるが、2 番目の選択には表示されないレコードが返されます。

C: select id,province,city,district from (select id,province,city,district,rownum as num from area) where num >=2
intersect
ログイン後にコピー

select * from area where rownum

集合交差演算子を使用すると、ここで工夫が必要です (ただし、この工夫により、rownum が特定の Number クエリよりも大きいことがわかります) )、最初に A のメソッドを使用してクエリを実行し、

rownum が 2 より大きいすべてのレコードを取得してから、rownum 以下のレコード セットとの交差演算を実行します。以下の図に示すように、3 つの操作で得られる結果は同じです。

Oracle の間隔クエリ ステートメントとは何ですか?

推奨チュートリアル: "Oracle Video Tutorial"

以上がOracle の間隔クエリ ステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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