什么是WITH AS 语句

WITH AS相当于虚拟视图。 WITH AS也叫做分解子查询或者片段子查询。

定义一个SQL片段, 该片段会被后面的SQL语句用到,可以近似看作一个可用的临时视图。

WITH AS优点

增加了SQL的可读性,如果构造多个片段子查询,结构会更加清晰。
一次构建,多次使用,达到减少读的目标。

SYS_TEMP_XXXX便是运行过程中构造的统计结果临时表。

WITH AS的语法

WITH 临时视图名 AS (SELECT查询)
SELECT .. FROM 临时视图名;

-- 单个表临时视图
WITH E AS (SELECT * FROM employees)
SELECT * FROM E;

-- 连接多个表的临时视图
WITH 
    e as (SELECT * FROM EMPLOYEES),
    d as (SELECT * FROM DEPARTMENTS)
SELECT e.LAST_NAME, d.department_name
FROM e inner join d
ON e.department_id = d.department_id;

-- 联合多个查询结果
WITH 
    e1 as (SELECT * FROM EMPLOYEES WHERE DEPARTMENT_ID = 100),
    e2 as (SELECT * FROM EMPLOYEES WHERE DEPARTMENT_ID = 110)
SELECT * from e1
UNION ALL
SELECT * FROM e2;

原文地址:http://www.cnblogs.com/slqleozhang/p/16884897.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性