SQL:SQLServer。共通テーブル式の活用。SQLで重複箇所が多いなら使用をおススメする | 人口知能に興味のあるSEのブログ

人口知能に興味のあるSEのブログ

最新IT技術と哲学関係の話題を中心に書いていきます。

複数のSELECT文をUNION ALLするなどしていたら重複箇所がでてきたことなどないだろうか?

そんなときは共通テーブルを使用して共通部分のテーブルを作成しておくことをお勧めする。

http://msdn.microsoft.com/ja-jp/library/ms190766(v=sql.105).aspx


共通テーブルの書き方としては

with CTE_LIST

(

共通する列A,

共通する列B,

)

as

(

select文①

)

select②

・・・・・


のようにして使用する。

共通テーブルでは最初のかっこ内に共通する列(特にキーとなる列)を書いていき、

あとのselect文②で

select

CTE_LIST.列A・・・

というように記述して共通テーブルを使用できるのだ。

赤字箇所が共通テーブルの記述部分であり、このSQL文が動いている間一時的に保持される

テーブルのようなものとして何度も参照が可能であり、便利である。

SQL文が長くなってきて共通箇所が多いな~と感じたら一度使用してみてはどうだろうか?