Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime 14.1 und höher
Ändert den Wert einer oder mehrerer temporärer Variablen.
Verwenden Sie zum Festlegen eines Konfigurationsparameters SET config.
Syntax
SET [ VAR | VARIABLE ] { variable_name = { expression | DEFAULT } } [, ...]
SET [ VAR | VARIABLE ] ( variable_name [, ...] ) = ( query ) }
Hinweis: Außerhalb einer zusammengesetzten Anweisung sind die Schlüsselwörter VAR oder VARIABLE erforderlich, um von einer SET config-Anweisung zu unterscheiden.
Innerhalb einer zusammengesetzten Anweisung sind VAR oder VARIABLE nicht zulässig.
Parameter
-
Gibt den Namen einer temporären Variablen an, die zuvor in der Sitzung oder einer Verbund-Anweisung definiert wurde.
Wenn die Variable nicht gefunden werden kann, löst Azure Databricks einen Fehler vom Typ UNRESOLVED_VARIABLE aus.
Wenn Sie doppelte Variablen angeben, löst Azure Databricks einen Fehler vom Typ DUPLICATE_ASSIGNMENTS aus.
-
Jeder wohlgeformte Ausdruck, der den neuen Variablenwert berechnet.
DEFAULT
Es wurde der Standardausdruck der Variable verwendet oder
NULL, wenn keiner angegeben wurde, um den neuen Variablenwert zu berechnen.-
Jede wohlgeformte Abfrage mit den folgenden Einschränkungen:
- Die Abfrage gibt höchstens eine Zeile (ROW_SUBQUERY_TOO_MANY_ROWS) zurück.
- Die Anzahl der von der Abfrage zurückgegebenen Spalten entspricht der Anzahl der angegebenen Variablennamen (ASSIGNMENT_ARITY_MISMATCH).
- Jede zurückgegebene Spalte kann an der übereinstimmenden Position in Variablen umgewandelt werden (CAST_INVALID_INPUT).
Wenn die Abfrage keine Zeilen zurückgibt, legt Azure Databricks alle angegebenen Variablen auf
NULLfest.Sie können das Schlüsselwort
DEFAULTanstelle eines Ausdrucks zur Listenauswahl verwenden, um eine Variable auf ihren Standardwert festzulegen.
Beispiele
> DECLARE VARIABLE myvar1 INT DEFAULT 7;
> DECLARE VARIABLE myvar2 STRING DEFAULT 'hello';
-- Set a SQL variable to a value
> SET VAR myvar1 = 5;
> VALUES (myvar1);
5
-- Set a SQL variable to a value inside of a compound statement
> BEGIN
SET myvar1 = 5;
END;
> VALUES (myvar1);
5
-- Set a SQL variable back to DEFAULT
> SET VARIABLE myvar1 = DEFAULT;
> VALUES (myvar1);
7
-- Set a SQL variable to the result of a scalar subquery.
> SET VARIABLE myvar1 = (SELECT max(c1) FROM VALUES(1), (2) AS T(c1));
> VALUES (myvar1);
2
-- Set multiple variables from a query
> SET VAR (myvar1, myvar2) = (VALUES(10, 'world'));
> VALUES (myvar1, myvar2);
10 world
-- Set multiple variables from expressions
> SET VAR myvar1 = 11, myvar2 = 'hello';
> VALUES (myvar1, myvar2);
11 hello
-- Set multiple variables based on a query
> SET VARIABLE (myvar1, myvar2)
= (SELECT max(c1), CAST(min(c1) AS STRING) FROM VALUES(1), (2) AS T(c1));
> VALUES (myvar1, myvar2);
2 1
-- Assign NULLs on empty query
> SET VAR (myvar1, myvar2)
= (SELECT max(c1), CAST(min(c1) AS STRING) FROM VALUES(1), (2) AS T(c1) HAVING max(c1) = 0);
> VALUES (myvar1, myvar2);
NULL NULL
-- Using a variable with an IDENTIFIER clause
> DECLARE colname STRING;
> SET VAR colname = 'c1';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
1
> SET VARIABLE colname = 'c2';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
2
-- Variable defaults are recomputed
> DECLARE VARIABLE val DEFAULT RAND();
> SELECT val;
0.1234...
> SET VARIABLE val = DEFAULT;
> SELECT val;
0.9876...