Udostępnij za pośrednictwem


DEKLAROWANIE ZMIENNEJ

Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 14.1 i nowsze

Tworzy prywatną, tymczasową zmienną sesji, do której można odwoływać się wszędzie tam, gdzie można używać wyrażenia stałego. Można również użyć zmiennych w połączeniu z klauzulą IDENTIFIER, aby sparametryzować identyfikatory w instrukcjach SQL.

Zmienne są modyfikowane przy użyciu instrukcji SET VARIABLE .

Nie można odwoływać się do zmiennych tymczasowych w:

  • ograniczenie sprawdzania
  • wygenerowana kolumna
  • wyrażenie domyślne
  • treść utrwalonej funkcji zdefiniowanej funkcji zdefiniowanej przez użytkownika SQL
  • treść utrwalonego widoku

Zmienne tymczasowe są również nazywane zmiennymi sesji .

Składnia

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

Parametry

  • LUB ZASTĄP

    Jeśli zostanie określona, zmienna o tej samej nazwie zostanie zamieniona.

  • variable_name

    Nazwa zmiennej. Nazwa może być kwalifikowana za pomocą session polecenia lub system.session. Jeśli nie OR REPLACE zostanie określona, nazwa musi być unikatowa w ramach sesji.

  • data_type

    Dowolny obsługiwany typ danych. W przypadku data_type pominięcia należy określić DEFAULTwartość , a typ pochodzi z .default_expression

  • DOMYŚLNE default_expression lub= default_expression

    Definiuje początkową wartość zmiennej po utworzeniu. default_expression musi być rzutowalny na data_type. Jeśli nie określono wartości domyślnej, zmienna jest inicjowana za pomocą NULLpolecenia .

    Jeśli wyrażenie zawiera podzapytywanie usługi Azure Databricks, zgłasza INVALID_DEFAULT_VALUE. SUBQUERY_EXPRESSION błąd.

Przykłady

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