ORACLE with..as...語句

       with...as ...語句用於將查詢語句定義爲某個名稱,並可以再後續的查詢塊中引用。當查詢名稱與已有的表名重複時,with定義的查詢塊優先級高。with語句可以定義多個查詢,中間使用逗號分隔。常用於定於需要反覆查詢某些表的視圖中,使用with語句把需要查詢的表定義爲查詢快再使用比直接在視圖中反覆的查詢表效率要高一些。個人覺得with..as..的作用是把會反覆使用的表字段在查詢塊中預先查詢出來,爲這個查詢塊定義一個名稱,作用類似於一個臨時表。

  例子:

 create or replace view test_with_as
 as 
 --定義with..as..查詢塊
 with     
 dept_info  as
 (select dept_name,dept_id  from dept),
 employee_info as
 (select  employee_name, employee_id, dept_id, salary   from employee)
 --調用with..as..中的查詢塊
 select d.*,t.* from dept_info  d  inner join employee_info  e on d.dept_id=e.dept_id;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章