我最近了解了SQL Server中的CTE,并试图在PL/SQL中使用它。我不需要它的一再好处,但是,我想用它来代替创建视图并提高查询性能。只是寻找什么代码可能类似的方向。PL/SQL中是否存在类似Common Table Expressions的东西?
回答
在Oracle这被称为子查询分解,并且它的工作原理相同的SQL Server据我所知:
with cte as (select * from emp)
select * from cte join dept on dept.deptno = cte.deptno;
见SELECT documentation并搜索“保理”。
+1:从9i开始支持,因为Oracle已经支持使用CONNECT BY语法的分层查询,所以子查询分解不支持递归部分直到11g(现在是ANSI)......我不记得PostgreSQL何时开始支持语法,可能在v8.x中。但是,CTEs /子查询因子分析不会提高查询性能,对于派生表/内联视图来说只是不同的语法。 – 2010-07-26 14:26:49
非常感谢。我使用的是Oracle 8i,它可以解释我为什么要打出来。我感谢帮助! – 2010-07-26 14:50:40
直到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
- 1. 如何在PostgreSQL中为CTE(Common Table Expressions)指定列类型?
- 2. Redshift中的Rmarkdown/knitr中的SQL块是否支持INNER JOIN和Common Table Expressions?
- 3. VS插件:查看标记。是否存在类似的东西?
- 4. 东西在Java中是(类似)参数
- 5. 类似的东西?
- 6. 在Objective-C中是否有类似于LINQ的东西?
- 7. 在Windows应用程序中是否有类似SESSION的东西?
- 8. 在Java中是否有类似于WebClient.DownloadString的东西?
- 9. 在C++中是否有类似于typeof的东西?
- 10. 在php中是否有类似NEGATIVE_INFINITY的东西?
- 11. 在其他浏览器中是否存在与Webkit的`window.styleMedia.type`类似的东西?
- 12. Java(8)中是否存在与Haskell中的“let”或“where”类似的东西
- 13. 在SQL服务器中是否存在与dbms_lob.INSTR类似的东西?
- 14. 在EJB环境中是否存在类似.wait()和.notify()的东西?
- 15. 寻找类似缓存的东西
- 16. 在NOSQL数据库中是否有类似存储过程的东西?
- 17. 是否有类似Unity中的Update void的东西?
- 18. 在Windows Azure上是否有类似Assembly Binding Log Viewer的东西?
- 19. 是否有类似WPF的DataTemplates东西在GTK /格莱德?
- 20. 在C++ 11之前是否有类似于std :: function的东西?
- 21. Qt中是否有类似.NET Reflector的东西?
- 22. 模型中是否有与application_helper或application_controller类似的东西?
- 23. Objective C中是否有类似parse_url的东西?
- 24. C#中是否有类似JAX-B的东西?
- 25. SQL Server 2008中是否有与Oracle Analytics类似的东西?
- 26. Perl中是否有类似Python Itertools的东西?
- 27. 谷歌地图v3中是否有类似于GUnload()的东西?
- 28. AS3 - 类似arguments.caller的东西?
- 29. 与KleisliFunctor类似的东西是什么?
- 30. 是否可以用宏实现类似Scala的@BeanProperty的东西?
这是SQL,而不是PL/SQL。 – 2010-07-27 04:53:06