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
Erstellt eine private, temporäre Sitzungsvariable, auf die Sie verweisen können, wo ein Konstantenausdruck verwendet werden kann. Sie können Variablen auch in Kombination mit der IDENTIFIER Klausel verwenden, um Bezeichner in SQL-Anweisungen zu parametrisieren.
Variablen werden mithilfe der SET VARIABLE-Anweisung geändert.
Auf temporäre Variablen kann nicht in folgenden Elementen verwiesen werden:
- CHECK-Einschränkung
- generierte Spalte
- Standardausdruck
- Text einer persistenten benutzerdefinierten SQL-Funktion
- Text einer persistenten Sicht
Temporäre Variablen werden auch als Sitzungsvariablen bezeichnet.
Syntax
DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name [, ...]
[ data_type ] [ { DEFAULT | = } default_expression ]
Vor Databricks Runtime 17.2 können Sie jeweils nur einzeln variable_name angeben.
Parameter
ODER ERSETZEN
Bei einer Angabe wird eine Variable mit demselben Namen ersetzt.
-
Ein Name für die Variable. Der Name kann mit
sessionodersystem.sessionqualifiziert werden. Sofern nichtOR REPLACEangegeben, muss der Variablenname innerhalb der Sitzung eindeutig sein und darf keinen anderen Variablennamen in der Anweisung duplizieren. -
Jeder unterstützte Datentyp. Wenn
data_typenicht angegeben wird, müssen SieDEFAULTangeben, und der Typ wird vondefault_expressionabgeleitet. DEFAULT Standardausdruck oder = Standardausdruck
Definiert den Anfangswert der Variable nach der Erstellung.
default_expressiomuss indata_typeumwandelbar sein. Wenn kein Standardwert angegeben ist, wird die Variable mitNULLinitialisiert.Wenn der Ausdruck eine Unterabfrage enthält, löst Azure Databricks den Fehler INVALID_DEFAULT_VALUE.SUBQUERY_EXPRESSION aus.
Beispiele
-- Create a variable with a default
> DECLARE VARIABLE myvar INT DEFAULT 5;
> VALUES (myvar);
5
-- Setting a variable
> SET VAR myvar = (SELECT sum(c1) FROM VALUES(1), (2) AS T(c1);
> VALUES (myvar);
3
-- Variables are the outermost scope.
> SELECT myvar, t.myvar, session.myvar FROM VALUES(1) AS T(myvar);
1 1 3
> DROP TEMPORARY VARIABLE myvar;
-- A minimalist variable declaration
> DECLARE myvar = 5;
> VALUES (myvar);
5
-- Declaring multiple variables
> DECLARE var1, var2 DOUBLE DEFAULT rand();
> VALUES (var1, var2);
0.3745401188473625 0.3745401188473625
-- 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 VAR colname = 'c2';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
2