Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:
Databricks SQL
Databricks Runtime 14.1 och senare
Skapar en privat och tillfällig sessionvariabel som du kan referera till där ett konstant uttryck kan användas. Du kan också använda variabler i kombination med IDENTIFIER-satsen för att parametrisera identifierare i SQL-uttryck.
Variabler ändras med hjälp av instruktionen SET VARIABLE.
Det går inte att referera till tillfälliga variabler inom:
- en kontrollbegränsning
- en genererad kolumn
- ett standarduttryck
- brödtexten i en beständiga SQL UDF
- huvudinnehållet i en sparad vy
Tillfälliga variabler kallas även sessionsvariabler .
Syntax
DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name [, ...]
[ data_type ] [ { DEFAULT | = } default_expression ]
Innan Databricks Runtime 17.2 kan du bara ange en variable_name i taget.
Parameterar
ELLER ERSÄTT
Om det anges ersätts variabeln med samma namn.
-
Ett namn på variabeln. Namnet kan vara kvalificerat med
sessionellersystem.session. Om inteOR REPLACEanges måste variabelnamnet vara unikt i sessionen och får inte duplicera något annat variabelnamn i -instruktionen. -
Alla datatyper som stöds. Om
data_typeutelämnas måste du angeDEFAULT, och typen härleds fråndefault_expression. STANDARD default_expression eller = default_expression
Definierar det ursprungliga värdet för variabeln när den har skapats.
default_expression måste vara kastbar tilldata_type. Om inget standardvärde anges initieras variabeln medNULL.Om uttrycket innehåller en underfråga skapar Azure Databricks en INVALID_DEFAULT_VALUE. SUBQUERY_EXPRESSION fel.
Exempel
-- 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