關於with 臨時表 as的一些用法

記錄每一次錯誤發表於2018-10-09

with  臨時表  as   (select ........)

關於with     as  的使用者在一下開發人員寫的SQL語句有看到。說一下個人的理解

例如:

        with  a  as  (select *   from emp )   

select ename,deptno,sal,(select avg(sal) from a where   deptno=a.deptno)    asal  from a  e;

這個sql的使用with    as   是將表emp讀到臨時表空間中形成一個臨時表a表,並且在下面的sql語句使用臨時表a表,這樣對錶emp,只讀一次(這裡是全表掃,可以在SQL語句語句後邊加where條件),後面的SQL語句

select ename,deptno,sal,(select avg(sal) from a where   deptno=a.deptno)    asal  from a  e;執行的時候將讀臨時表中的資料。

其中有一個問題,這樣使用臨時的表SQL語句的效能是否提高,這有待證明,這個SQL語句只是為了理解with  臨時表  as .......沒有注重SQL語句效能。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547066/viewspace-2215768/,如需轉載,請註明出處,否則將追究法律責任。

相關文章