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
Memodifikasi nilai satu atau beberapa variabel sementara.
Untuk mengatur parameter konfigurasi, gunakan konfigurasi SET.
Sintaks
SET [ VAR | VARIABLE ] { variable_name = { expression | DEFAULT } } [, ...]
SET [ VAR | VARIABLE ] ( variable_name [, ...] ) = ( query ) }
Catatan: Di luar pernyataan gabungan , kata kunci VAR atau VARIABLE wajib digunakan untuk membedakan dari pernyataan konfigurasi SET.
Dalam pernyataan gabungan VAR atau VARIABLE tidak diizinkan.
Parameter
-
Menentukan nama variabel sementara, yang sebelumnya ditentukan dalam sesi atau pernyataan gabungan.
Jika variabel tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan UNRESOLVED_VARIABLE .
Jika Anda menentukan variabel duplikat Azure Databricks menimbulkan kesalahan DUPLICATE_ASSIGNMENTS .
-
Ekspresi apa pun yang terbentuk dengan baik untuk menghitung nilai variabel baru.
DEFAULT
Gunakan ekspresi default variabel atau
NULLjika tidak ada yang ditentukan untuk menghitung nilai variabel baru.-
Setiap kueri yang terbentuk dengan baik dengan batasan berikut:
- Kueri mengembalikan paling banyak satu baris (ROW_SUBQUERY_TOO_MANY_ROWS).
- Jumlah kolom yang dikembalikan oleh kueri cocok dengan jumlah nama variabel yang ditentukan (ASSIGNMENT_ARITY_MISMATCH).
- Setiap kolom yang dikembalikan dapat diubah menjadi variabel pada posisi yang sesuai (CAST_INVALID_INPUT).
Jika kueri tidak mengembalikan baris Azure Databricks mengatur semua variabel yang ditentukan ke
NULL.Anda dapat menggunakan kata kunci
DEFAULTalih-alih ekspresi pilih daftar untuk mengatur variabel ke defaultnya.
Contoh
> 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 to a value inside of a compound statement
> BEGIN
SET myvar1 = 5;
END;
> 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...