TurboSQL Guide Unterabfragen |
Top Previous Next |
Suchbedingungen in SELECT, INSERT und UPDATE Statements können eingebettete Abfragen beinhalten, die mit einem der folgenden Operatoren mit der Hauptabfrage verglichen werden können. Außerdem kann eine geklammerte Unterabfrage überall da verwendet werden, wo ein Ausdruck erwartet wird. TurboSQL erlaubt sowohl korrelierte als auch unkorrelierte Unterabfragen. In Prüfung ob der Wert eines Ausdrucks in der Ergebnismenge der Unterabfrage gefunden werden kann. Beispiel select * from SALESINFO Liefert alle Verkäufe an Kunden aus Kalifornien und ist im Allgemeinen dasselbe wie select * from SALESINFO join CUSTOMER on customerName = name Exists Prüft ob die Unterabfrage mindesten einen Datensatz enthält Example select * from SALESINFO Liefert dasselbe Ergebnis wie das erste Beispiel. Zu beachten ist aber, dass die Unterabfrage jetzt eine Spaltenreferenz auf die äußere Abfrage enthält. Dies wird als korrelierte Unterabfrage bezeichnet. Any/Some Überprüft, ob es mindestens einen Datensatz in der Ergebnismenge der Unterabfrage gibt, der die Suchbedingung erfüllt. Example select * from SALESINFO Liefert alle Verkäufe, die für den jeweiligen Kunden größer als der Durchschnitt sind. All Überprüft, ob alle Datensätze der Ergebnismenge der Unterabfrage der Suchbedingung genügen. Example select * from SALESINFO Liefert die Verkäufe, die für jeden einzelnen Kunden in Kalifornien größer als der Durchschnitt sind. Unterabfrage als Ausdruck Eine Unterabfrage in Klammern kann also skalarer Ausdruck verwendet werden. Der Typ des Ausdrucks ist der Typ der ersten Spalte der Ergebnismenge. Der Wert des skalaren Ausdrucks ist Wert der ersten Spalte in der ersten Zeile. Wenn die Ergebnismenge keine Spalte enthält, ist der Ausdruck ungültig. Enthält sie keine Zeile, ist der Wert NULL. Beispiele: select * from [TableB] where C1 like (select C2 from TableB) || '%' set A = (select Count(*) from TableA) Verfügbarkeit: Die Verwendung von Unterabfragen als Ausdrücke ist nur in TurboDB Managed verfügbar. Siehe auch |