よく似た複数の表を同じ条件で抽出し、その結果を UNION や JOIN でくっつけたりするような複雑な SQL を書いていると、複数の箇所に全く同じサブクエリが登場することがあります。 SELECT 'S1' AS TNAME, PNO, SALES FROM S1 WHERE PNO IN (SELECT PNO FROM PD WHERE STATUS = 'S') UNION SELECT 'S2' AS TNAME, PNO, SALES FROM S2 WHERE PNO IN (SELECT PNO FROM PD WHERE STATUS = 'S'); このように記述すると全く同じであってもそれぞれ別個のサブクエリとして処理されてしまいあまり効率がよくありません。 こんなときは WITH query_name句を使ってサブクエリに名前をつけ、その名前を使ってサブクエリを参