El 回答 von Joe Stefanelli ist bereits korrekt.
SELECT name FROM (SELECT name FROM agentinformation) as a
Wir müssen einen Alias der Unterabfrage erstellen, da eine Abfrage ein Tabellenobjekt benötigt, das wir durch Erstellen eines Alias für die Unterabfrage erhalten. Vom Konzept her werden die Ergebnisse der Subquery in der äußeren Abfrage ersetzt. Da wir ein Tabellenobjekt in der äußeren Abfrage benötigen, müssen wir einen Alias für die innere Abfrage erstellen.
Anweisungen, die eine Unterabfrage enthalten, haben normalerweise eine dieser Formen:
- WHERE Ausdruck [NOT] IN (Unterabfrage)
- WHERE Ausdruck comparison_operator [ANY | ALL] (Unterabfrage)
- WHERE [NOT] EXISTS (Unterabfrage)
Mehr Informationen Subquery-Regeln y Subquery-Typen .
Weitere Beispiele von verschachtelten Unterabfragen.
-
IN / NOT IN - Dieser Operator nimmt die Ausgabe der inneren Abfrage, nachdem die innere Abfrage ausgeführt wurde, die null oder mehr Werte sein kann, und sendet sie an die äußere Abfrage. Die äußere Abfrage holt dann alle übereinstimmenden [IN-Operator] oder nicht übereinstimmenden [NOT IN-Operator] Zeilen ab.
-
ANY - [>ANY oder ANY-Operator nimmt die von der inneren Abfrage erzeugte Liste von Werten und holt alle Werte, die größer als der Mindestwert der Liste sind. Die
z.B. >ANY(100,200,300), der Operator ANY holt alle Werte, die größer als 100 sind.
- ALL - [>ALL oder ALL-Operator nimmt die von der inneren Abfrage erzeugte Liste von Werten und holt alle Werte, die größer als das Maximum der Liste sind. Die
z.B. >ALL(100,200,300), der Operator ALL holt alle Werte, die größer als 300 sind.
- EXISTS - Das Schlüsselwort EXISTS liefert einen booleschen Wert [TRUE/FALSE]. Dieses EXISTS prüft die Existenz der von der Unterabfrage zurückgegebenen Zeilen.