2017年04月06日

[SQL]共通表式を使えば、ごちゃごちゃしたサブクエリを一掃できたり、再帰呼び出しができたりする。

新しい業界標準「SQL99」詳細解説

メモ。

共通表式のメリット
・1つのクエリーだけで使用するローカルな(使い捨て)ビューを定義できる

・そのため、サブクエリでごちゃごちゃしなくなるので、見通しが良い

・直前に定義した共通表式は、すぐ後で参照できる(カスケード参照できる)
 つまり、明細レベルでまとめて、1段階グループ化して、2段階グループ化して みたいなことがそれぞれをビューにすることなく、1つのクエリで完結する。そしてそのそれぞれを、最終的なSELECT文の中で別々の表として参照できる。

・自己参照のパターン(共通表式のUNION )を取ることで繰り返し参照ができる。これはViewでは実現できない共通表式ならではの使い方。これまでなら、クエリーでは実現できず ストアドプロシジャを書かなければならなかったケースがこれに該当する。

今までよりさらにSQLが楽しく活用できるようになる素晴らしい機能だと思う。

さらにPostgreSQLだと、WITH にDELETE文を記述できて、その削除結果をSELECTしたり、INSERTの対象にできたりするのでこれもものすごく便利だと思う。 SQL ServerやDB2やOracleでも使えるといいのに。
PostgreSQL WITH問い合わせ(共通テーブル式)

20170422_233829 もう一個特徴的なこと
・複数定義した共通表式のうち特定の式を最終SELECT句で参照しなくてもいい
 これがあるから、いままでワークテーブルを作らないとできなかったようなクエリーも1つのクエリーで完結できてしまう。ワークテーブル的に使えるのにテーブル定義は不要で、共通表式の定義だけで使える。なんて便利なんだ。

共通表式はかなり強力なクエリー構文だ。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/179337753
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

・おすすめ楽天ショップ1:trendyimpact楽天市場店
・おすすめサプリショップ:iHerb.com
・おすすめ楽天ショップ2:上海問屋
Powered by さくらのブログ