Aracılığıyla paylaş


DEĞIŞKEN BILDIRME

Şunlar için geçerlidir: onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 14.1 ve üzeri

Sabit ifadenin kullanabildiği her yerde başvurabileceğiniz özel, geçici bir oturum değişkeni oluşturur. DEĞIŞKENLERI, SQL deyimlerindeki tanımlayıcıları parametreleştirmek için IDENTIFIER yan tümcesiyle birlikte de kullanabilirsiniz.

Değişkenler SET VARIABLE deyimi kullanılarak değiştirilir.

Geçici değişkenlere aşağıdakiler içinde başvurulamaz:

  • denetim kısıtlaması
  • oluşturulan sütun
  • varsayılan ifade
  • kalıcı bir SQL UDF'nin gövdesi
  • kalıcı bir görünümün gövdesi

Geçici değişkenler oturum değişkenleri olarak da adlandırılır.

Sözdizimi

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

Parametreler

  • VEYA DEĞİşTİr

    Belirtilirse, aynı ada sahip değişken değiştirilir.

  • variable_name

    Değişkenin adı. Ad veya system.sessionile session nitelenebilir. Belirtilmediği sürece OR REPLACE , adın oturum içinde benzersiz olması gerekir.

  • data_type

    Desteklenen herhangi bir veri türü. Belirtilmezse data_type , belirtmelisiniz DEFAULTve türü türünden default_expressiontüretilir.

  • DEFAULT default_expression veya= default_expression

    Oluşturma işleminden sonra değişkenin ilk değerini tanımlar. default_expression, olarak data_typeatanabilir olmalıdır. Varsayılan belirtilmezse, değişkeni ile NULLbaşlatılır.

    İfade bir alt sorgu içeriyorsa Azure Databricks bir INVALID_DEFAULT_VALUE oluşturur. SUBQUERY_EXPRESSION hatası.

Örnekler

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