Aracılığıyla paylaş


Değişken

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

Değişkenler, tiplendirilmiş ve şemaya uygun, bir oturuma özel değerleri depolayan nesnelerdir. Azure Databricks'te değişkenler geçicidir ve DECLARE VARIABLE deyimi kullanılarak bir oturum içinde bildirilir.

Geçici değişken ve oturum değişkeni terimleri değiştirilebilir.

Geçici değişkenlerin bulunduğu şema system.session.

Değişken, tanımlandığı oturumun sonunda örtük olarak bırakılır. Ancak, DROP VARIABLE deyimini kullanarak bunu önceden açıkça kaldırabilirsiniz.

Bir değişken tanımlandığında değeri NULL veya isteğe bağlı olarak belirtilen varsayılan ifadenin sonucudur. oturum sırasında istediğiniz zaman SET değişkeni deyimiyle istediğiniz sayıda değişkenin değerini değiştirebilirsiniz.

Bir sorguda, değişken adları ad alanlarını sütun adları, sütun diğer adları ve işlev parametre adları ile paylaşır. Değişkenler, ad çakışmaları durumunda çözümleme sırası'de son sıradadır.

Değişkenler, parametre işaretçilerinden üç şekilde farklılık gösterir:

  • Parametre işaretçileri yalnızca tek bir deyim içinde bulunur. Çağırma API'sinin değeri ve türünü sağlaması gerekir. Bir oturumun süresi boyunca değişkenler vardır ve her deyim için bir değer geçirmelerine gerek kalmadan birden çok deyimde bunlara başvurulmasına olanak sağlar.
  • Değişkenler SQL bağlamından ayrılmadan ayarlanabilir.
  • Değişkenlere geçici görünümlerin ve SQL işlevlerinin gövdelerinde başvurulabilir. Geçici bir görünüme veya geçici BIR SQL işlevine başvurduğunda, gövdesindeki herhangi bir değişkenin geçerli değeri kullanılır.

IDENTIFIER yan tümcesi değişkenleri bağımsız değişken olarak kabul eder. Bu, bu değişkenleri ayarlamak için kullanılan sorguların değişkenlerini ve sonuçlarını kullanarak tanımlayıcıları parametreleştirmenizi sağlar.

Örnekler

-- A verbose definition of a temporary variable
> DECLARE OR REPLACE VARIABLE myvar INT DEFAULT 17;

-- A dense definition, including derivation of the type from the default expression
> DECLARE address = named_struct('street', 'Grimmauld Place', 'number', 12);

-- Referencing a variable
> SELECT myvar, session.address.number;
 17  12

-- Setting a single variable
> SET VAR myvar = (SELECT max(c1) FROM VALUES (1), (2) AS t(c1));
> SELECT myvar;
  2

-- Setting multiple variables
> SET VAR (myvar, address) = (SELECT address.number, named_struct('street', address.street, 'number', 10));
> SELECT myvar, address;
  12    {"street":"Grimmauld Place","number":10}

-- Drop a variable
> DROP TEMPORARY VARIABLE myvar;
> DROP TEMPORARY VARIABLE IF EXISTS address;

-- Use the IDENTIFIER clause with a variable
> DECLARE view = 'tempv';
> CREATE OR REPLACE TEMPORARY VIEW IDENTIFIER(view) (c1) AS SELECT 1;
> SELECT * FROM IDENTIFIER(view);
  1