DEKLARASIKAN VARIABEL

Berlaku untuk:check marked yes 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 klausul 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 default,
  • isi UDF SQL yang bertahan,
  • isi tampilan yang bertahan.

Variabel sementara juga disebut variabel sesi .

Sintaks

DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name
    [ data_type ] [ { DEFEAULT | = } default_expression ]

Parameter

  • OR REPLACE

    Jika ditentukan, variabel dengan nama yang sama diganti.

  • variable_name

    Nama untuk variabel. Nama mungkin memenuhi syarat dengan session atau system.session. Kecuali OR REPLACE ditentukan, nama harus unik dalam sesi.

  • data_type

    Jenis data apa pun yang didukung. Jika data_type dihilangkan, Anda harus menentukan DEFAULT, dan jenisnya berasal dari default_expression.

  • default_expression default atau = default_expression

    Menentukan nilai awal variabel setelah pembuatan. default_expression harus dicor ke data_type. Jika tidak ada default yang ditentukan, variabel diinisialisasi dengan NULL.

    Jika ekspresi menyertakan subkueri Azure Databricks akan menaikkan INVALID_DEFAULT_VALUE. SUBQUERY_EXPRESSION kesalahan.

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

-- 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