Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ş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. SQL ifadelerindeki tanımlayıcıları parametre haline getirmek için değişkenleri, IDENTIFIER söz dizimi ile 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ı veri görünümünü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 ]
Databricks Runtime 17.2'nin öncesinde tek seferde yalnızca bir tane variable_name belirtebilirsiniz.
Parametreler
VEYA DEĞİŞTİR
Belirtilirse, aynı ada sahip değişkenin yerine başkası konur.
-
Değişkenin adı. İsim
sessionveyasystem.sessionile nitelenebilir. Belirtilmediği süreceOR REPLACE, değişken adının oturum içinde benzersiz olması ve deyimindeki başka bir değişken adını yinelememesi gerekir. -
Desteklenen herhangi bir veri türü. Eğer
data_typebelirtilmezse,DEFAULTbelirtmelisiniz ve türüdefault_expression'den türetilir. DEFAULT default_expression veya = default_expression
Oluşturma işleminden sonra değişkenin ilk değerini tanımlar.
default_expression,data_type'ye dönüştürülebilir olmalıdır. Varsayılan bir değer belirtilmediğinde, değişkenNULLile başlatılır.İfade bir alt sorgu içeriyorsa Azure Databricks bir INVALID_DEFAULT_VALUE.SUBQUERY_EXPRESSION hatası oluşturur.
Ö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
-- Declaring multiple variables
> DECLARE var1, var2 DOUBLE DEFAULT rand();
> VALUES (var1, var2);
0.3745401188473625 0.3745401188473625
-- 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