WITH ステートメントは、1 つ以上のテーブル式と SELECT ステ
ートメントで構成されます。共通テーブル式は、後続の SELECT ステートメントの FROM 文節でテーブルとして指定することができる、名前付き結果テーブルを定義します。このオプションは
、IBM® DB2
Universal Database™ を使用している場合に使用可能です。
WITH ステートメントは、SQL ビルダーでのみ作成で
きるものであり、「SQL ステートメントの新規作成」ウィザードでは作成できません。
共通テーブル式
共通テーブル式は、以下の場合に使用
できます。
- ビューを作成しないで済むように、ビューの代わ
りとして (ビューの一般的な使用が必要ではなく、位置付け更新または削除が使用されない場合)
- 1 つに限定できない、または外部アクションのある、スカラー副選択や関数から生成された列によって、
グループ化を使用可能にするため
- 結果テーブルがホスト変数に基づくとき
- 同じ結果テーブルが FULLSELECT で共有される必要があるとき
- 再帰を使用して結果を導き出す必要があるとき
WITH ステートメントを作成するには、以下を行います。
- データ・パースペクティブの「データ定義」ビューに切り替える。
- ご使用のデータベースを含むプロジェクトまたはフォルダーを
展開し、「ステートメント」フォルダーが表示
されるまで、データベース・ノードを展開する。
- 「ステートメント」フォルダーを
右クリックしてから、ポップアップ・メニュー
のを クリックする。
- ステートメントの名前を入力して「OK」をクリックする。 SQL ビルダーが開きます。
- 「アウトライン」ビューで WITH ステートメントの構造を検討
する。 SELECT ステートメントは、WITH ステートメントに自動的に追
加されます。これは、WITH ステートメント SELECT と呼ばれます。最初に共通テーブル式を定義し、次に、共通テーブル式で定義されたテーブルを使用して、WITH ステートメント SELECT を完成させる必要があります。
- 共通テーブル式を追加するには、「アウトライン」ビュー
で WITH ステートメントを右クリックし、ポップアップ・メニュー
で「共通テーブル式の追加」をクリックする。 共通テーブル式を入力するには、一時テーブルおよび SELECT ステートメントの結果セットに基づくその列を定義します。定義しているテーブルは一時のみのものなので、
「データ定義」ビューの「テーブル」フォルダーには表示
されません。
一時テーブルが共通テーブル式で定義されると、これに WITH ステートメント SELECT を追加できます。
- 「アウトライン」ビューで、WITH ステートメントの下にある共通テーブル式のノードをクリックする。
- 共通テーブル式のノードを展開し、含まれている SELECT ステート
メントをクリックする。
- 共通テーブル式の SELECT ステートメントを入力する。
- 「アウトライン」ビューで、共通テーブル式をクリックし、列名を割り当ててから「追加 >>」を
クリックして列を追加し、列リストを完成させる。 名前を付けられた列は、共通テーブル式 SELECT ステートメントの SELECT 文
節で定義済みの列に対応する必要があります。
- 必要な場合は、同様にして共通テーブル式を追加する。
- 「アウトライン」ビューで WITH ステートメント SELECT を選択する。 これは、statementnameSELECT という名
前で、statementname は WITH ステートメントの名前です。これは、全体で WITH ステートメントに適用する SELECT ステートメントで、WITH ステートメントで定義された共通テーブル式を使用します。
- WITH ステートメント SELECT を完成させる。
- 完了したら、を選択して、SQL ステートメント
を実行する。
出力が 「DB 出力」ビューに表示されます。