Hace poco aprendí acerca de CTE en SQL Server y estoy tratando de usarlo en PL/SQL. No necesito los beneficios recurrentes, sin embargo, me gustaría utilizarlo en lugar de crear una vista y mejorar el rendimiento de la consulta. Solo estoy buscando alguna dirección sobre qué código puede ser similar.¿Existe algo así como Common Table Expressions en PL/SQL?
Respuesta
En Oracle Esto se conoce como la factorización subconsulta, y funciona igual que en SQL Server que yo sepa:
with cte as (select * from emp)
select * from cte join dept on dept.deptno = cte.deptno;
Ver SELECT documentation y la búsqueda de "factoring".
+1: admitido desde 9i, el factoring Subquery no admitía la parte recursiva hasta 11g (que ahora es ANSI) porque Oracle ya soportaba consultas jerárquicas usando la sintaxis CONNECT BY ... No recuerdo cuando PostgreSQL comenzó a admitir la sintaxis, probable en v8.x. Pero CTE/Subquery Factoring no mejora el rendimiento de las consultas, solo una sintaxis diferente para tablas derivadas/vistas en línea. –
Muchas gracias. Estoy usando Oracle 8i que explicaría por qué me estoy pegando. Aprecio la ayuda! –
La función recursiva de la cláusula 'with' no se admite hasta 11g R2. (No disponible en 11g R1.) Ver: http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/wnsql.htm#sthref6 –
- 1. ¿Existe algo así como XML 2.0?
- 2. ¿Existe algo así como AJEDREZ para Java?
- 3. ¿Existe algo así como un tiempo cada ciclo en Java?
- 4. ¿Existe algo así como un `bit` adecuado en JavaScript?
- 5. ¿Existe algo así como 'if (! Page.IsPostBack)' en jQuery o javascript?
- 6. ¿Existe algo así como herencia en componentes compuestos JSF 2?
- 7. ¿Existe algo así como un fragmento de HTML5 válido?
- 8. ¿existe algo así como una consulta demasiado grande?
- 9. ¿Cómo se especifican los tipos de columna para CTE (Common Table Expressions) en PostgreSQL?
- 10. ¿Hay algo así como indicadores en Lua?
- 11. ¿Hay algo así como find_if en Java?
- 12. ¿Tiene Common Lisp algo así como la interfaz de conjunto de Java/implementación de clases?
- 13. ¿Tiene Lisp algo así como la función takeWhile de Haskell?
- 14. ¿Hay algo así como un modelo funcional?
- 15. Algo así como boost :: multi_index para Python
- 16. ¿Hay algo así como Codecademy para Java
- 17. ¿Hay algo así como WMI para Linux?
- 18. ¿Hay algo así como `last` for` map`?
- 19. ¿Hay algo así como "global ::" para VB.NET?
- 20. ¿Hay algo así como bpython para Ruby?
- 21. ¿Hay algo así como AutoMapper para Scala?
- 22. Algo así como Tryparse de Convert.FromBase64String
- 23. Algo así como Apache Zookeeper sin Java?
- 24. ¿Hay algo así como Incanter para Haskell?
- 25. ¿Hay algo así como sesión en la aplicación de Windows?
- 26. ¿Hay algo así como un selector jQuery relativo?
- 27. ¿Hay algo así como Eclipse Perspective en Visual Studio?
- 28. ¿Hay algo así como "si no existe crear secuencia ..." en Oracle SQL?
- 29. Existe algo así como un "proyecto de solo contenido/datos" en visual studio
- 30. ¿Hay algo así como i en rango (longitud) en PHP?
Es SQL, no PL/SQL. –