oracle功能强大的with子句

select * from emp ;

   EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
17369SMITHCLERK790217-12月-8080020
27499ALLENSALESMAN769820-2月 -81160030030
37521WARDSALESMAN769822-2月 -81125050030
47566JONESMANAGER783902-4月 -81297520
57654MARTINSALESMAN769828-9月 -811250140030
67698BLAKEMANAGER783901-5月 -81285030
77782CLARKMANAGER783909-6月 -81245010
87788SCOTTANALYST756619-4月 -87300020
97839KINGPRESIDENT17-11月-81500010

select * from dept ;

   DEPTNODNAMELOC
110ACCOUNTINGNEW YORK
220RESEARCHDALLAS
330SALESCHICAGO
440OPERATIONSBOSTON

功能强大的WITH子句的用法

WITH
dept_costs AS (
SELECT d.dname, SUM(e.sal) AS dept_total
FROM emp e, dept d
WHERE e.deptno = d.deptno
GROUP BY d.dname ),
avg_cost AS (
SELECT SUM(dept_total)/COUNT(*) AS dept_avg FROM dept_costs )
SELECT * FROM dept_costs
WHERE dept_total <
(SELECT dept_avg FROM avg_cost)
ORDER BY dname ;

官方解释:

The WITH Clause Usage Notes
• It is used only with SELECT statements.
• A query name is visible to all WITH element query blocks (including their subquery blocks)
defined after it and the main query block itself (including its subquery blocks).
• When the query name is the same as an existing table name, the parser searches from the inside
out, the query block name takes precedence over the table name.
• The WITH clause can hold more than one query. Each query is then separated by a comma.

 

转载于:https://www.cnblogs.com/caibird2005/archive/2009/01/07/1371269.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值