![]()
SQLクリニック(6) Page
2/2SQLの抽出結果を階層構造で表示するテクニック
株式会社インサイトテクノロジー
林 優
2005/7/28
では、EMP表をDEPT表と結合して、各部門の部門長を選択するSQL文を記述してみます。
SQL> select |
| リスト5 EMP表とDEPT表を結合した階層問い合わせ |
階層レベルを条件式に指定することにより、複雑なSQL文を書かなくても所属長が分かるようになります。もちろん実際に扱うデータはもっと複雑なので一筋縄ではいきませんが、階層問い合わせを使うことにより、すっきりしたSQL文になることもあります。
実行計画を確認する際に、よくV$SQL_PLANビューを参照します。しかし、トレースを取得して出力された実行計画に慣れてしまうと、V$SQL_PLANビューをSELECTしただけでは、どこで結合されているか分かりにくくなってしまいます。
そこで、最後に階層問い合わせを使用して、V$SQL_PLANビューの結果を見やすく出力してみます
SQL> select |
| リスト6 実行計画の階層問い合わせ(別ウィンドウでコードを表示) |
リスト6の15〜19行、connect by句でそれぞれの関係性を指定します。ここでは、idとparent_idを関連付けるだけでは、非常に時間がかかってしまうため、hash_valueとaddressについても関連付けています。
また、階層問い合わせの場合、order by句やgroup by句を使用すると階層が壊れてしまう場合があります。その場合、order by句を使用するなら、siblingsキーワードを使用して階層を維持したままソートする必要があります。
少しのキーワードを追加するだけで、問い合わせの結果がとても見やすくなります。もっといろいろな使い方があると思いますので、工夫してみてください。(次回に続く)
| 筆者プロフィール |
| 株式会社インサイトテクノロジー Oracleに特化した製品開発、コンサルティングを手掛けるエンジニア集団。林 優は殺伐とした対策現場でも柔らかな言動で問題点を切り分ける誠実な目の中に闘志を持つシステムコンサルタント。 |
| 2/2 |
| Index | |
| 連載 SQLクリニック(6) SQLの抽出結果を階層構造で表示するテクニック |
|
| Page 1 ・階層問い合わせの基本 |
|
| Page 2 ・表の結合で階層問い合わせを使う ・実行計画を階層問い合わせしてみる |
|
| SQLクリニック |
TechTargetジャパン
Database Expert フォーラム 新着記事
- IBMが歴史を変える!? 新カテゴリの製品を発表 (2012/5/25)
IBMは新たな製品カテゴリとなる「PureSystems」を発表。DB2 10とビッグデータの関係、PureSytemsの斬新さはどこかに迫ります - クラウド時代のデータ処理を支える分散KVSの可能性 (2012/5/23)
現在、高速データ処理の主流はインメモリ型データ処理だが、別の方法として分散KVSが注目を集めている。今回は分散KVSについて話を聞いた - 複数の表からデータを取り出して表示させる(2) (2012/4/23)
前回はSQLの基本的な結合構文について説明しました。今回は、より複雑な自己結合や外部結合について説明します - SQL Server、OOWにIQ、盛りだくさんの4月 (2012/4/20)
オラクルオープンワールドが3年ぶりに東京で開催されたほか、SQL Server 2012が提供開始されるなど、今月は話題が盛りだくさんです
|
|
@IT 新着記事
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
お勧め求人情報
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
ソリューションFLASH
