SELECT文において副問合せを使うことはよくありますが、
全く同じ副問合せを何度も記述することはSQL的にも非効率です。
そこで WITH句 の登場なのですが、 この句を用いて何度も利用するSELECT文を宣言し、 それをその後に続くSQLの中の FROM句 の中で利用できます。
以下の様なテストテーブル「TEST1」があるとします。 このテーブルに対して WITH句 を使ってみます。
TEST1のCODE2が「3」のデータを全て抽出するSELECTを WITH句 として宣言し、 さらにその WITH句 を2回使用するSQLが以下の様になります。
WITH句 では「CODE1」が「1」と「4」のデータを抽出します。 それ以降の SELECT文 では「CODE2」が「1」と「3」のものを UNION しています。 このSQLを実行すると以下の様になります。
そこで WITH句 の登場なのですが、 この句を用いて何度も利用するSELECT文を宣言し、 それをその後に続くSQLの中の FROM句 の中で利用できます。
以下の様なテストテーブル「TEST1」があるとします。 このテーブルに対して WITH句 を使ってみます。
TEST1のCODE2が「3」のデータを全て抽出するSELECTを WITH句 として宣言し、 さらにその WITH句 を2回使用するSQLが以下の様になります。
WITH句 では「CODE1」が「1」と「4」のデータを抽出します。 それ以降の SELECT文 では「CODE2」が「1」と「3」のものを UNION しています。 このSQLを実行すると以下の様になります。