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 Runtime
14.1 ke atas
Variabel adalah objek yang bertipe dan memenuhi kualifikasi skema yang menyimpan nilai yang bersifat privat untuk sesi. Dalam variabel Azure Databricks bersifat sementara dan dinyatakan dalam sesi menggunakan pernyataan DECLARE VARIABLE.
Istilah variabel sementara dan variabel sesi dapat dipertukarkan.
Skema di mana variabel sementara berada adalah system.session.
Variabel dihilangkan secara implisit di akhir sesi yang mendefinisikannya. Tetapi Anda dapat secara eksplisit menghilangkannya sebelumnya menggunakan pernyataan DROP VARIABLE.
Ketika variabel didefinisikan nilainya NULL atau hasil ekspresi default yang ditentukan secara opsional.
Anda dapat memodifikasi nilai sejumlah variabel dengan SET pernyataan variabel kapan saja selama sesi.
Saat dirujuk dalam kueri, nama variabel berbagi namespace dengan nama kolom, alias kolom, dan nama parameter fungsi. Variabel terakhir dalam urutan resolusi jika terjadi konflik nama.
Variabel berbeda secara semantik dari penanda parameter dengan tiga cara:
- Penanda parameter hanya ada dalam satu pernyataan. API pemanggilan harus memberikan nilai dan jenis. Variabel ada selama durasi sesi, memungkinkan mereka dirujuk dalam beberapa instruksi tanpa perlu mengirimkan nilai untuk setiap instruksi.
- Variabel dapat diatur tanpa meninggalkan konteks SQL.
- Variabel dapat dirujuk dalam isi tampilan sementara dan fungsi SQL. Saat Anda mereferensikan tampilan sementara atau fungsi SQL sementara, nilai variabel apa pun saat ini dalam isinya akan digunakan.
Klausa IDENTIFIER menerima variabel sebagai argumen. Ini memungkinkan Anda untuk membuat parameter pengidentifikasi menggunakan variabel dan hasil kueri yang digunakan untuk mengatur variabel tersebut.
Contoh
-- 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