Oracle の間隔クエリ ステートメント: 1. 「select * from table name where rownum
このチュートリアルの動作環境: Windows 10 システム、Oracle バージョン 12c、Dell G3 コンピューター。
Oracle は rownum キーワードを使用してこのクエリを実装します。
まず、
テーブル内のデータは下図のとおりです(選択の結果)。 * from area ステートメント) :
1) テーブル
select * from area where rownum <= 8
の最初の 8 レコードをクエリします。クエリの結果は次のとおりです。
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 Video Tutorial"
以上がOracle の間隔クエリ ステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。