oracle函数 with as(临时表)用法 & mysql的变通实现
with table as 介绍:
相当于建个临时表(用于一个语句中某些中间结果放在临时表空间的SQL语句),Oracle 9i 新增WITH语法,可以将查询中的子查询命名,放到SELECT语句的最前面。
**何时被清除 **
临时表不都是会话结束就自动被PGA清除嘛! 但with as临时表是查询完成后就被清除了!
- 1.用作临时表
1 | with tab as( |
1 | with tt as ( |
1 | WITH |
- 2.就是把一大堆重复用到的SQL语句放在with as 里面,取一个别名,后面的查询就可以用它.这样对于大批量的SQL语句起到一个优化的作用
1
2with a as (select * from test)
select * from a;
mysql 并不支持此关键字。单功能依然在
Oracle
1 | with tab as( |
** mysql **
1 | # 临时表,方式一 |
或
1 | # 临时表,方式二 |
参考mysql中怎么实现with..as操作,请大神帮忙。
http://zhidao.baidu.com/link?url=3L-qB-MhKme7JPbbOn34jlLGd7HsJqy_xLtuFCYAcXo2Rcaqi9hMd7Z-bCXUa7SdFxuQvWu1CXQGM_QvJeTEHK