Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime 14.1 ke atas
Membuat variabel privat dan sementara sesi yang dapat Anda referensikan di mana pun ekspresi konstanta dapat digunakan. Anda juga dapat menggunakan variabel dalam kombinasi dengan klausa IDENTIFIER untuk membuat parameter pengidentifikasi dalam pernyataan SQL.
Variabel dimodifikasi menggunakan pernyataan SET VARIABLE.
Variabel sementara tidak dapat dirujuk dalam:
- batasan pemeriksaan
- kolom yang dihasilkan
- ekspresi bawaan
- isi UDF SQL yang bertahan
- isi dari tampilan yang tersimpan
Variabel sementara juga disebut variabel sesi .
Sintaks
DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name [, ...]
[ data_type ] [ { DEFAULT | = } default_expression ]
Sebelum Databricks Runtime 17.2 Anda hanya dapat menentukan satu per satu variable_name .
Parameter
ATAU GANTI
Jika ditentukan, variabel dengan nama yang sama diganti.
-
Nama untuk variabel. Nama mungkin memenuhi syarat dengan
sessionatausystem.session. KecualiOR REPLACEditentukan, nama variabel harus unik dalam sesi dan tidak boleh menduplikasi nama variabel lain dalam pernyataan. -
Jenis data apa pun yang didukung. Jika
data_typedihilangkan, Anda harus menentukanDEFAULT, dan jenisnya berasal daridefault_expression. DEFAULT default_expression atau = default_expression
Menentukan nilai awal variabel setelah pembuatan.
default_expression harus bisa diubah kedata_type. Jika tidak ada default yang ditentukan, variabel diinisialisasi denganNULL.Jika ekspresi menyertakan subkueri, Azure Databricks akan menghasilkan kesalahan INVALID_DEFAULT_VALUE.SUBQUERY_EXPRESSION.
Contoh
-- 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