Skalare Unterabfragen vereinfachen komplexe SQL-Ausdrücke

Oracle war lange ein Verfechter der Idee von „In-line Views“, wobei eine Unterabfrage innerhalb der FROM-Klausel platziert werden kann, praktisch so, als wäre sie der Name einer Tabelle. Hier ein Beispiel für eine Oracle-Abfrage, die den Speicherplatz der einzelnen Tabellen anzeigt (Listing A).

Listing B zeigt das Ergebnis dieser In-line View-Abfrage gegen das Datenverzeichnis.

Im Beispiel-Listing A sind die SQL-Unterabfragen innerhalb der FROM-Klausel platziert, und es werden ihnen die Aliase df und fs zugewiesen. Auf die Werte der df- und fs-Unterabfragen wird dann innerhalb der SELECT-Klausel zugegriffen. Wenn man sich diese Abfrage genauer anschaut, sieht man, dass sie zwei Bereiche von Werten aus zwei Tabellen addiert und vergleicht, und das alles in einer einzigen Abfrage. Einigen Lesern dürfte eine SQL-Abfrage innerhalb der FROM-Klausel recht merkwürdig vorkommen, aber das ist noch nichts im Vergleich zu skalaren Unterabfragen! Eine skalare Unterabfrage geht weit über die In-line Views hinaus, wobei SQL-Unterabfragen innerhalb der SELECT-Klausel platziert werden können. Lassen Sie uns einige Beispiele betrachten.

Beispiele für skalare Unterabfragen

Wenn man sich erst einmal mit der Syntax vertraut gemacht hat, wird man feststellen, dass skalare Unterabfragen sehr leistungsfähig sind. Skalare Unterabfragen sind besonders nützlich für die Zusammenfassung mehrere Abfragen zu einer einzigen. Listing C verwendet skalare Unterabfragen zur Berechnung unterschiedlicher Arten von Gruppenfunktionen (max und avg), alles mit einem einzigen SQL-Ausdruck. Beachten Sie, dass diese Abfrage sowohl skalare Unterabfragen als auch In-line Views verwendet.

Skalare Unterabfragen sind ebenfalls nützlich, wenn man Werte in Tabellen einfügen will, die auf Werten aus anderen Tabellen basieren. In Listing D verwenden wir eine skalare Unterabfrage, um den maximalen Kreditrahmen für BILL zu berechnen und diesen Wert in die Tabelle max_credit einzufügen.

Die skalare Unterabfrage in Listing D ist sehr nützlich für Oracle Data Warehouse-Anwendungen. In einem Oracle Data Warehouse ist es üblich, dass der DBA bestimmte Werte schon im Vorfeld mithilfe von Gruppenfunktionen zusammenfasst, um die Abfrage-Geschwindigkeit zu erhöhen. Skalare Unterabfragen sind ein leistungsfähiger Helfer bei dieser Aufgabe. In Listing E füllen wir die Tabelle emp_salary_summary mit vielen Arten von zusammengefassten Werten aus den zugrunde liegenden Tabellen.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

KI-gestütztes Programmieren bringt IT-Herausforderungen mit sich

OutSystems-Studie: 62 Prozent der Befragten haben Sicherheits- und Governance-Bedenken bei Softwareentwicklung mit KI-Unterstützung.

7 Stunden ago

Studie: Ein Drittel aller E-Mails an Unternehmen sind unerwünscht

Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…

4 Tagen ago

HubPhish: Phishing-Kampagne zielt auf europäische Unternehmen

Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…

4 Tagen ago

1. Januar 2025: Umstieg auf E-Rechnung im B2B-Geschäftsverkehr

Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.

4 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…

4 Tagen ago

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

5 Tagen ago