SQL-Ausdruck
Gilt für: Databricks SQL Databricks Runtime
Ein Ausdruck ist eine Formel, die mithilfe von Literalen oder Verweisen ein Ergebnis für Spalten, Felder oder Variablen verweist, indem sie Funktionen oder Operatoren verwendet.
Syntax
{ literal |
named_parameter_marker |
unnamed_parameter_marker |
column_reference |
field_reference |
parameter_reference |
CAST expression |
CASE expression |
expr operator expr |
operator expr |
expr [ expr ] |
function_invocation |
( expr ) |
( expr, expr [, ... ] ) |
scalar_subquery }
scalar_subquery
( query )
Die Klammern in expr [ expr ]
sind tatsächliche Klammern und geben keine optionale Syntax an.
Parameter
literal
Ein Literal eines Typs, der in Datentypen beschrieben wird.
-
Ein benannter und typisierter Platzhalter für einen Wert, der von der API bereitgestellt wird, die die SQL-Anweisung übermittelt.
-
Ein unbenannter und typisierter Platzhalter für einen Wert, der von der API bereitgestellt wird, die die SQL-Anweisung übermittelt.
column_reference
Ein Verweis auf eine Spalte in einer Tabelle oder einen Spaltenalias.
field_reference
Ein Verweis auf ein Feld in einem STRUCT-Typ.
-
Ein Verweis auf einen Parameter einer benutzerdefinierten SQL-Funktion mit dem Textkörper der Funktion. Der Verweis kann den nicht qualifizierten Namen des Parameters verwenden oder den Namen mit dem Funktionsnamen qualifizieren. Parameter bilden den äußersten Bereich beim Auflösen von Bezeichnern.
-
Ein Ausdruck, der das Argument in einen anderen Typ umwandelt.
-
Ein Ausdruck, der die bedingte Auswertung zulässt.
expr
Ein Ausdruck für sich, der mit einem
operator
kombiniert wird oder der ein Argument für eine Funktion ist.-
Ein unärer oder binärer Operator.
-
Ein Verweis auf ein Array-Element oder einen Zuordnungsschlüssel.
-
Ein Aufruf einer integrierten oder benutzerdefinierten Funktion.
Weitere Informationen finden Sie unter function_invocation.
( expr )
Erzwungene Rangfolge, die die Operatorrangfolge überschreibt.
( expr, expr [, … ] )
Erstellt ein
struct
von zwei oder mehr Feldern. Diese Notation ist synonym für die Strukturfunktion.-
( Abfrage )
Ein Ausdruck, der auf einer Abfrage basiert, die eine einzelne Spalte und höchstens eine Zeile zurückgeben muss.
Die Seiten für alle Funktionen und Operatoren beschreiben die Datentypen, die ihre Parameter erwarten. Azure Databricks führt die implizite Umwandlung in erwartete Typen mithilfe der SQL-Datentypregeln durch. Wenn ein Operator oder eine Funktion für das angegebene Argument ungültig ist, löst Azure Databricks einen Fehler aus.
Siehe Auflösung von Spalten, Feldern, Parametern und Variablen für weitere Informationen zur Namensauflösung.
Konstanter Ausdruck
Ein Ausdruck, der nur auf Literalen oder deterministischen Funktionen ohne Argumente basiert. Azure Databricks kann den Ausdruck ausführen und die resultierende Konstante verwenden, wenn normalerweise Literale erforderlich sind.
Boolescher Ausdruck
Ein Ausdruck mit dem Ergebnistyp BOOLEAN
. Ein boolescher Ausdruck wird manchmal auch als eine Bedingung oder ein Prädikat bezeichnet.
Skalare Unterabfrage
Ein Ausdruck im Format ( query )
. Die Abfrage muss eine Tabelle zurückgeben, die eine Spalte und höchstens eine Zeile enthält.
Wenn die Abfrage keine Zeile zurückgibt, ist das Ergebnis NULL
.
Wenn die Abfrage mehr als eine Zeile zurückgibt, gibt Azure Databricks einen Fehler zurück.
Andernfalls entspricht das Ergebnis dem von der Abfrage zurückgegebenen Wert.
Einfacher Ausdruck
Ein Ausdruck ohne query
, z. B. eine skalare Unterabfrage oder ein EXISTS
-Prädikat.
Beispiele
> SELECT 1;
1
> SELECT (SELECT 1) + 1;
2
> SELECT 1 + 1;
2
> SELECT 2 * (1 + 2);
6
> SELECT 2 * 1 + 2;
4
> SELECT substr('Spark', 1, 2);
Sp
> SELECT c1 + c2 FROM VALUES(1, 2) AS t(c1, c2);
3
> SELECT a[1] FROM VALUES(array(10, 20)) AS T(a);
20
> SELECT true;
true
> SELECT (c1, (c2, c3)) FROM VALUES(1, 2, 3) AS T(c1, c2, c3);
{"c1":1,"col2":{"c2":2,"c3":3}}