スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

共通表式

今日はIT的な話し、業務で用いているPostgreSQLには共通表式と云うとても便利な検索SQLを使うことができる、これはORACLEやIBMのDB2ではすでに十年ほど前から実装されていて、Postgresでもいよいよ使えるようになった。

共通表式の検索文はSELECTではなくWITHから書き始める、次の例では、A表から条件hogeで取り出したデータをa1表へ作成し、そのa1から条件fooで取り出したデータをa2表へ作成、最後にa2表から条件nnnで取り出したデータを結果として得る、WITH句で定義するa1とa2は「一時的な表(table)」とも言える。

WITH
a1 AS ( SELECT xxx,xxxx FROM A WHERE hoge ),
a2 AS ( SELECT xxx,xxxx FROM a1 WHERE foo )
SELECT xxx,xxxx FROM a2 WHERE nnn;

一時的な表を作成しているa1とa2の()の括りの中及び最後のSELECTは普通にSQLを記述できるので、JOINやUNIONや条件を駆使して「恐ろしく複雑な条件」でもある程度の整理整頓が出来て、見直すときにも有効であるしVIEWテーブルを用意しなくと良いなどの利点もある、但し実行パフォーマンスは常に勘案した方が善いとは思うけども。

ところでRIGHT OUTER JOINの使い方が未だに理解ができないけども、使う局面に出会うことが無いからそれでいいことにしようと思う。
スポンサーサイト

コメントの投稿

非公開コメント

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。