Delen via


VARIABELE DECLAREREN

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan 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 ID-component om id's in SQL-instructies te parameteriseren.

Variabelen worden gewijzigd met 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 hoofdtekst van een permanente weergave.

Tijdelijke variabelen worden ook wel sessievariabelen genoemd.

Syntaxis

DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name
    [ data_type ] [ { DEFEAULT | = } default_expression ]

Parameters

  • OF VERVANGEN

    Indien opgegeven, wordt de variabele met dezelfde naam vervangen.

  • variable_name

    Een naam voor de variabele. De naam kan worden gekwalificeerd met session of system.session. OR REPLACE Tenzij opgegeven, moet de naam uniek zijn binnen de sessie.

  • data_type

    Elk ondersteund gegevenstype. Als data_type u dit weglaat, moet u opgeven DEFAULTen het type is afgeleid van de default_expression.

  • STANDAARD-default_expression of default_expression =

    Definieert de initiële waarde van de variabele na het maken. default_expression moet worden gegoten naar data_type. Als er geen standaardwaarde is opgegeven, wordt de variabele geïnitialiseerd met NULL.

    Als de expressie een subquery van Azure Databricks bevat, wordt er een INVALID_DEFAULT_VALUE. SUBQUERY_EXPRESSION fout.

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

-- 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