SQLのWITH句の使いどころやメリット
はじめに
今回の記事は、SQLのWITH句についてです。そもそも「WITH句って何?」という方は以下のサイトを見てみてください。
WITH句の使いどころやメリット
同じようなサブクエリを書くとき
WITH句の使いどころとして、一つのSQL内で、同じようなサブクエリを何回か書きたくなったとき、そのサブクエリはWITH句にした方がいいです。個人的には、メインのクエリでUNIONするときにそういう状況になることが多いです。
SQLの保守性が向上する
WITH句のメリットとして、SQLが読みやすくなる(可読性UP)という意見も多いようですが、私はSQLに手を入れる箇所が少なくて済む(保守性UP)というメリットの方が大きいと思っています。いわゆる「DRY原則」(Don’t Repeat Yourself)です。
さらに、そのWITH句のクエリが(一つのSQL内ではなくて)複数のSQLにわたって使われる場合は、恐らくVIEWで定義してしまった方がいいです(CREATE VIEW文)。
(参考)サブクエリ等の複雑なSQLを見やすくする工夫
SQLには適切なインデントを入れて見やすくするのはもちろんですが、設計書等のドキュメントがある場合は、以下のように関連するブロックを枠で囲うのがオススメです。
上記はシンプルな例ですが、複雑なSQLになればなるほど効果を発揮します。サブクエリだけでなく、CASE式やUNIONの上下のクエリ等にも応用できます。枠の中に枠が入ったりするときもありますが、SQLをつくった人の考え方が分かって読みやすいです。
ぜひ試してみてください!