Aracılığıyla paylaş


SET VARIABLE

Ş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

Bir veya daha fazla geçici değişkenin değerini değiştirir.

Yapılandırma parametresi ayarlamak için SET kullanın.

Sözdizimi

SET { VAR | VARIABLE } { variable_name = { expression | DEFAULT } } [, ...]

SET { VAR | VARIABLE } ( variable_name [, ...] ) = ( query ) }

Parametreler

  • variable_name

    Geçici değişkenin adını belirtir.

    Değişken bulunamazsa Azure Databricks bir UNRESOLVED_VARIABLE hatası oluşturur.

    Yinelenen değişkenler belirtirseniz Azure Databricks bir DUPLICATE_ASSIGNMENTS hatası oluşturur.

  • ifade

    İyi biçimlendirilmiş ifadeler, yeni değişken değerini hesaplar.

  • TEMERRÜT

    Değişkenin varsayılan ifadesini veya NULL yeni değişken değerini hesaplamak için belirtilmemişse kullanılır.

  • query

    Aşağıdaki kısıtlamalara sahip iyi biçimlendirilmiş tüm sorgular:

    Sorgu satır döndürmezse Azure Databricks belirtilen tüm değişkenleri olarak NULLayarlar.

    Bir değişkeni varsayılan değerine DEFAULT ayarlamak için select-list ifadesi yerine anahtar sözcüğünü kullanabilirsiniz.

Örnekler

> DECLARE VARIABLE myvar1 INT DEFAULT 7;
> DECLARE VARIABLE myvar2 STRING DEFAULT ‘hello’;

-- Set a SQL variable to a value
> SET VAR myvar1 = 5;
> VALUES (myvar1);
  5

-- Set a SQL variable back to DEFAULT
> SET VARIABLE myvar1 = DEFAULT;
> VALUES (myvar1);
  7

-- Set a SQL variable to the result of a scalar subquery.
> SET VARIABLE myvar1 = (SELECT max(c1) FROM VALUES(1), (2) AS T(c1));
> VALUES (myvar1);
  2

-- Set multiple variables from a query
> SET VAR (myvar1, myvar2) = (VALUES(10, 'world'));
> VALUES (myvar1, myvar2);
  10   world

-- Set multiple variables from expressions
> SET VAR myvar1 = 11, myvar2 = 'hello';
> VALUES (myvar1, myvar2);
  11   hello

-- Set multiple variables based on a query
> SET VARIABLE (myvar1, myvar2)
    = (SELECT max(c1), CAST(min(c1) AS STRING) FROM VALUES(1), (2) AS T(c1));
> VALUES (myvar1, myvar2);
  2    1

-- Assign NULLs on empty query
> SET VAR (myvar1, myvar2)
    = (SELECT max(c1), CAST(min(c1) AS STRING) FROM VALUES(1), (2) AS T(c1) HAVING max(c1) = 0);
> VALUES (myvar1, myvar2);
  NULL  NULL

-- 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 VARIABLE colname = 'c2';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
  2

-- Variable defaults are recomputed
> DECLARE VARIABLE val DEFAULT RAND();
> SELECT val;
  0.1234...

> SET VARIABLE val = DEFAULT;
> SELECT val;
  0.9876...