DEĞIŞKEN BILDIRME
Şunlar için geçerlidir: Databricks SQL 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.
-
Değişkenin adı. Ad veya
system.session
ilesession
nitelenebilir. Belirtilmediği süreceOR REPLACE
, adın oturum içinde benzersiz olması gerekir. -
Desteklenen herhangi bir veri türü. Belirtilmezse
data_type
, belirtmelisinizDEFAULT
ve türü türündendefault_expression
türetilir. DEFAULT default_expression veya= default_expression
Oluşturma işleminden sonra değişkenin ilk değerini tanımlar.
default_expressio
n, olarakdata_type
atanabilir olmalıdır. Varsayılan belirtilmezse, değişkeni ileNULL
baş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