共通表式
共通表式を使うと、検索結果を名前付きの表として定義して、後に続くselect文で参照することができます。
例えば次のようなSQLは、
select * from ( select distinct * from A ) as X order by case when id is null then 0 else 1 end, id
共通表式を使って以下のように書くことができます。
with X as ( select distinct * from A ) select * from X order by case when id is null then 0 else 1 end, id
表の参照が1回だといまいちありがたみがわかりませんが、複数回使うような場合に便利そう。
なお、残念ながらMySQLでは未対応のようです。手近にあったMySQL 4.1.22では動作せず、DB2 V9.1で確認しました。