Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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