oracle whileの使用例の共有

708 ワード

クエリーの一部が複数回使用される場合、Oracle with文を使用して共通のテンポラリ・テーブルを作成できます.サブクエリはメモリ・テンポラリ・テーブルで重複解析を回避するため、実行効率が大幅に向上します.テンポラリ・テーブルは、クエリーの終了時に自動的に消去されます.
一般的な構文形式:
 
  
with  
alias_name1 as    (subquery1), 
alias_name2 as    (subQuery2), 
……  alias_nameN as    (subQueryN) 
select col1,col2…… col3
from alias_name1,alias_name2……,alias_nameN  

Oracle with文の例:
 
  
WITH  Q1 AS (SELECT 3 + 5 S FROM DUAL),
Q2 AS (SELECT 3 * 5 M FROM DUAL),
Q3 AS (SELECT S, M, S + M, S * M FROM Q1, Q2) 
SELECT * FROM Q3;

出力結果:
 
  
1 8 15 23 120