以下の内容はhttps://rmrmrmarmrmrm.hatenablog.com/entry/455111273.htmlより取得しました。


【Oracle】WITH句について

OracleのWITH句の使い方


 

 
WITHを使うと副問い合わせ部分を別に切り出して定義することができる。
たとえば

select a.*
from (select sysdate as SYSDATE_DATE
            ,to_char(sysdate,'yyyy/MM/dd HH24:mi:ss') as SYSDATE_CHAR
      from dual
      ) a


は、
副問い合わせ部分の表別名aをWITHで切り出して

with b as 
(select sysdate as SYSDATE_DATE
       ,to_char(sysdate,'yyyy/MM/dd HH24:mi:ss') as SYSDATE_CHAR
 from dual
) 
select
  b.*
from b

と記述することができる。
両方とも結果は同じ。
※「WITH b」にしたのは流行に乗っかったネタです。意味はありません

この程度ならいちいちWITHにする必要もない気がするが、
同一の副問い合わせとの結合を複数個必要としている場面などで、
毎回同じ副問い合わせを書いていると、
効率や保守性が悪いので、こうやってWITHで切り出すやり方を使うとその辺がクリアになる。

個人的にはあまりなじみがないのだが、
この前ちょっと遭遇したので備忘録で残してみる。




以上の内容はhttps://rmrmrmarmrmrm.hatenablog.com/entry/455111273.htmlより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14