ORACLE ツリー構造クエリを分析する 1 つの記事

WBOY
リリース: 2022-09-05 17:48:24
転載
2490 人が閲覧しました

この記事では、Oracleに関する関連知識を提供します。主に ORACLE ツリー構造クエリの解析に関する記事を紹介します。この記事では、このトピックについて詳しく説明します。一緒に見てみましょう。お役に立てば幸いです。みんなに。

ORACLE ツリー構造クエリを分析する 1 つの記事

推奨チュートリアル: 「Oracle ビデオ チュートリアル

日常のプログラミングでは、次のようなツリー構造に遭遇することがよくあります。組織構造、管理部門などこれらは多くの場合、データベース内のテーブルを通じて表示されます。ここでは単純な行政区分表を例に挙げていますが、実際にはこれに他の記述項目やレベルを追加することも可能です。

#テーブルは ID と PID に関連付けられ、ツリー構造の保存を実現します。テーブルの作成とデータ ステートメントは次のとおりです。

-- Create table create table TREETEST ( id NVARCHAR2(50), pid NVARCHAR2(50), name NVARCHAR2(50) )
ログイン後にコピー
insert into TREETEST (ID, PID, NAME) values ('1', null, '山东省'); insert into TREETEST (ID, PID, NAME) values ('2', '1', '青岛市'); insert into TREETEST (ID, PID, NAME) values ('3', '1', '烟台市'); insert into TREETEST (ID, PID, NAME) values ('4', null, '河南省'); insert into TREETEST (ID, PID, NAME) values ('5', null, '河北省'); insert into TREETEST (ID, PID, NAME) values ('6', '2', '市南区'); insert into TREETEST (ID, PID, NAME) values ('7', '2', '市北区'); insert into TREETEST (ID, PID, NAME) values ('8', '2', '即墨市');
ログイン後にコピー

ツリー構造をクエリするにはどうすればよいですか? Oracle はクエリに対して再帰クエリを提供します。基本的な構文は次のとおりです:

SELECT [Column]…..   FEOM [Table]   WHERE Conditional1   START WITH Conditional2   CONNECT BY PRIOR Conditional3   ORDER BY [Column]
ログイン後にコピー

説明:

  • 条件 1---フィルタ条件、返されたすべてのレコードがフィルタリングされます。
  • 条件 2---ルート ノードの制限条件。もちろん、複数のルート ノードを取得する、つまり複数のツリーを取得する権限を緩和することもできます。
  • 条件 3-- - リンク条件、目的は父と息子の関係を与え、この関係に基づいて再帰クエリを実行します (上記のテーブルでは ID=PID)
  • Sort---返されたすべてを並べ替えますレコード

## 以下の具体的な例を見てみましょう:

1. 山東省のすべてのサブノードをクエリします

SELECT * FROM TREETEST t START WITH t.PID=1 CONNECT BY PRIOR t.ID = t.PID
ログイン後にコピー
# ID が 1 の

## は山東省のノードであり、クエリ結果は次のようになります:

#2. クエリ青島市の次のレベルの子ノード (上記のすべての子ノードおよび次のレベルの子ノードとの違いに注意してください)

ORACLE ツリー構造クエリを分析する 1 つの記事

3.青島市、山東省などを接続して表示する必要がある場合は、SYS_CONNECT_BY_PATH を使用してこれを実現できます。

SELECT t.ID, SYS_CONNECT_BY_PATH(t.NAME, '\') AS INDU_NAME FROM TREETEST t START WITH t.PID IS NULL CONNECT BY PRIOR t.ID = t.PID
ログイン後にコピー

クエリの結果は次のとおりです。

4. 同様に、下から上に進むこともできます。推奨チュートリアル: 「Oracle ビデオ チュートリアル

以上がORACLE ツリー構造クエリを分析する 1 つの記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:jb51.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!