2010-07-26 85 views

回答

11

在Oracle这被称为子查询分解,并且它的工作原理相同的SQL Server据我所知:

with cte as (select * from emp) 
select * from cte join dept on dept.deptno = cte.deptno; 

SELECT documentation并搜索“保理”。

+8

+1:从9i开始支持,因为Oracle已经支持使用CONNECT BY语法的分层查询,所以子查询分解不支持递归部分直到11g(现在是ANSI)......我不记得PostgreSQL何时开始支持语法,可能在v8.x中。但是,CTEs /子查询因子分析不会提高查询性能,对于派生表/内联视图来说只是不同的语法。 – 2010-07-26 14:26:49

+1

非常感谢。我使用的是Oracle 8i,它可以解释我为什么要打出来。我感谢帮助! – 2010-07-26 14:50:40

+1

直到11g R2之前,不支持'with'子句的递归函数。 (不适用于11g R1。)请参阅:http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/wnsql.htm#sthref6 – 2010-07-26 16:57:24

相关问题