Ich habe vor kurzem über CTE in SQL Server gelernt und versuche, es in PL/SQL zu verwenden. Ich brauche nicht die wiederkehrenden Vorteile, aber ich möchte es anstelle der Erstellung einer Ansicht und zur Verbesserung der Abfrageleistung verwenden. Ich suche nur nach einer Richtung, in der Code ähnlich sein könnte.Gibt es in PL/SQL so etwas wie gemeinsame Tabellenausdrücke?
Antwort
In Oracle wird dies als Unterabfrage Factoring bekannt, und es das gleiche wie in SQL Server AFAIK funktioniert:
with cte as (select * from emp)
select * from cte join dept on dept.deptno = cte.deptno;
SELECT documentation See und für "Factoring" suchen.
+1: Unterstützt seit 9i, Unterabfrage factoring unterstützt nicht den rekursiven Teil bis 11g (das ist jetzt ANSI), weil Oracle bereits hierarchische Abfragen mit CONNECT BY Syntax unterstützt ... Ich erinnere mich nicht, wenn PostgreSQL begann, die Syntax zu unterstützen, wahrscheinlich in v8.x. CTEs/Subquery Factoring verbessert jedoch nicht die Abfrageleistung, sondern nur die Syntax für abgeleitete Tabellen/Inline-Ansichten. –
Vielen Dank. Ich benutze Oracle 8i, was erklären würde, warum ich streiche. Ich schätze die Hilfe! –
Die rekursive Funktion der 'with'-Klausel wurde erst ab 11g R2 unterstützt. (Nicht verfügbar in 11g R1.) Siehe: http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/wnsql.htm#sthref6 –
- 1. Gemeinsame Tabellenausdrücke versus Temp Tabelle
- 2. VBA - Gibt es so etwas wie Listen?
- 3. Gibt es so etwas wie XML 2.0?
- 4. Gibt es so etwas wie "Unicode-Sortierung"?
- 5. Gibt es so etwas wie Python-Generatoren in Ruby?
- 6. Gibt es in Julia so etwas wie SharedDict?
- 7. Gibt es so etwas wie malloc/free in Java?
- 8. Gibt es in Dojo so etwas wie RadWindo?
- 9. Gibt es in Windows so etwas wie SESSION?
- 10. Gibt es so etwas wie Linux ptrace syscall in Windows?
- 11. Gibt es in Unity so etwas wie ein Runnable?
- 12. Gibt es so etwas wie eine Null bool in vb.net
- 13. Gibt es so etwas wie Java Quartz in Rubin?
- 14. Gibt es so etwas wie Pythons "mit" in C#?
- 15. Gibt es so etwas wie einen Kommentar in IL?
- 16. Gibt es in Ruby so etwas wie "Callable"?
- 17. Daemon Java-Prozess - gibt es so etwas?
- 18. Gibt es eine Konstante so etwas wie bit_in_byte (8)?
- 19. Gibt es so etwas wie eine automatische Zeilenhöhe?
- 20. Gibt es so etwas wie Codecademy für Java
- 21. Gibt es so etwas wie zu viele Tische?
- 22. Gibt es so etwas wie ein ArraySet und ArrayMap?
- 23. Gibt es so etwas wie CakePHP „Benutzerverwaltung“ Plugin Skript
- 24. Gibt es so etwas wie "negative" Groß-O-Komplexität?
- 25. Gibt es so etwas wie ein Array/Objekt-Hybrid?
- 26. Gibt es so etwas wie ein Manager-Designmuster?
- 27. Gibt es so etwas wie ein "reversibles Wörterbuch"?
- 28. Gibt es so etwas wie IMAP für Podcasts?
- 29. Gibt es etwas wie NSDictionary in Android?
- 30. Gibt es etwas wie RhinoMocks in Java?
Es ist SQL, nicht PL/SQL. –