Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 14.1 vagy újabb
Létrehoz egy privát, ideiglenes munkamenet-változót, amelyre hivatkozhat, ahol állandó kifejezés használható. A változókat a IDENTIFIER záradékkal együtt is használhatja, az SQL-utasítások azonosítóinak paraméterezéséhez.
A változók a SET VARIABLE utasítással módosulnak.
Az ideiglenes változókra nem lehet hivatkozni a következőn belül:
- ellenőrzési kényszer
- létrehozott oszlop
- alapértelmezett kifejezés
- egy tárolt SQL UDF törzse
- a megőrzött nézet tartalma
Az ideiglenes változókat munkamenet-változóknak is nevezik.
Syntax
DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name [, ...]
[ data_type ] [ { DEFAULT | = } default_expression ]
A Databricks Runtime 17.2 előtt egyszerre csak egyet variable_name adhat meg.
Paraméterek
VAGY CSERE
Ha meg van adva, az azonos nevű változó helyébe lép.
-
A változó neve. A név minősíthető a következővel
session: vagysystem.session. Ha nincsOR REPLACEmegadva, a változó nevének egyedinek kell lennie a munkameneten belül, és az utasításban nem duplikálhat más változónevet. -
Bármilyen támogatott adattípus. Ha
data_typenincs megadva, meg kell adniaDEFAULT, és a típus adefault_expressionalapján kerül meghatározásra. ALAPÉRTELMEZETT default_kifejezés vagy = default_kifejezés
Meghatározza a változó kezdeti értékét a létrehozás után.
default_expression-nek átalakíthatónak kell lenniedata_typetípusúvá. Ha nincs megadva alapértelmezett érték, a változó inicializálva lesz a következővelNULL: .Ha a kifejezés tartalmaz egy al-lekérdezést, az Azure Databricks INVALID_DEFAULT_VALUE.SUBQUERY_EXPRESSION hibát jelez
.
Példák
-- 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