Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:
 Databricks SQL 
 Databricks Runtime 14.1 en hoger
Hiermee maakt u een privésessie, tijdelijke variabele waarnaar u kunt verwijzen waar een constante expressie kan worden gebruikt. U kunt variabelen ook gebruiken in combinatie met de IDENTIFIER-component om id's in SQL-instructies te parameteriseren.
Variabelen worden gewijzigd met behulp van de instructie SET VARIABLE.
Er kan niet worden verwezen naar tijdelijke variabelen binnen:
- een controlebeperking
 - een gegenereerde kolom
 - een standaardexpressie
 - de hoofdtekst van een persistente SQL UDF
 - de inhoud van een vastgelegde weergave
 
Tijdelijke variabelen worden ook wel sessievariabelen genoemd.
Syntaxis
DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name [, ...]
    [ data_type ] [ { DEFAULT | = } default_expression ]
Vóór Databricks Runtime 17.2 kunt u slechts één variable_name voor één opgeven.
Parameterwaarden
OF VERVANGEN
Indien opgegeven, wordt de variabele met dezelfde naam vervangen.
- 
Een naam voor de variabele. De naam kan worden gekwalificeerd met
sessionofsystem.session.OR REPLACETenzij opgegeven, moet de naam van de variabele uniek zijn binnen de sessie en mag geen andere variabelenaam in de instructie dupliceren. - 
Elk ondersteund gegevenstype. Als
data_typewordt weggelaten, moet uDEFAULTopgeven, en het type is afgeleid van dedefault_expression. STANDAARD default_expression of = default_expression
Definieert de initiële waarde van de variabele na het maken.
default_expression moet omgezet kunnen worden naardata_type. Als er geen standaardwaarde is opgegeven, wordt de variabele geïnitialiseerd metNULL.Als de expressie een subquery bevat, geeft Azure Databricks een INVALID_DEFAULT_VALUE.SUBQUERY_EXPRESSION foutmelding.
Voorbeelden
-- 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