Eine Unterabfrage ist ein Abfrage-Ausdruck, der in folgenden Fällen verwendet werden kann:
In Ausdrücken:
Die Unterabfrage muss eine einspaltige Ergebnistabelle mit höchstens einem Satz liefern. Der Wert der Unterabfrage ist dann der Wert in der Ergebnistabelle bzw. der NULL-Wert, wenn die Ergebnistabelle leer ist.In Prädikaten:
In den Prädikaten ANY, SOME, ALL, IN und EXISTS liefert die Unterabfrage eine Ergebnistabelle.In der FROM-Klausel von SELECT-Ausdrücken:
Die Unterabfrage liefert eine Ergebnistabelle.In Join-Ausdrücken:
Die Unterabfrage liefert eine Ergebnistabelle.
Eine Unterabfrage wird immer in runde Klammern eingeschlossen.
Korrelierte Unterabfrage
Bei einem geschachtelten Abfrage-Ausdruck heißt eine innere Unterabfrage korrelierte Unterabfrage, wenn sie sich auf Spalten einer Tabelle bezieht, die in einem äußeren Abfrage-Ausdruck verwendet wird.
Korrelierte Unterabfragen werden ausgewertet, indem die innere Unterabfrage für jeden Satz der Tabelle in der äußeren Abfrage ausgewertet wird. Nicht korrelierte Unterabfragen werden nur einmal ausgewertet, da sie nicht von der äußeren Abfrage abhängen.