VÁLTOZÓ BEÁLLÍTÁSA
A következőkre vonatkozik: Databricks SQL Databricks Runtime 14.1 vagy újabb
Módosítja egy vagy több ideiglenes változó értékét.
Konfigurációs paraméter beállításához használja a SET parancsot.
Syntax
SET { VAR | VARIABLE } { variable_name = { expression | DEFAULT } } [, ...]
SET { VAR | VARIABLE } ( variable_name [, ...] ) = ( query ) }
Paraméterek
-
Egy ideiglenes változó nevét adja meg.
Ha a változó nem található, az Azure Databricks UNRESOLVED_VARIABLE hibát okoz.
Ha ismétlődő változókat ad meg, az Azure Databricks DUPLICATE_ASSIGNMENTS hibát okoz.
-
Bármely jól formázott kifejezés, amely az új változó értékét számítja ki.
ALAPÉRTELMEZETT
A változó alapértelmezett kifejezését használta, vagy
NULL
ha nincs megadva az új változó értékének kiszámításához.-
Minden jól formázott lekérdezés a következő korlátozásokkal:
- A lekérdezés legfeljebb egy sort (ROW_SUBQUERY_TOO_MANY_ROWS) ad vissza.
- A lekérdezés által visszaadott oszlopok száma megegyezik a megadott változónevek számával (ASSIGNMENT_ARITY_MISMATCH).
- Minden visszaadott oszlop változóra vethető az egyező pozícióban (CAST_INVALID_INPUT).
Ha a lekérdezés nem ad vissza sorokat, az Azure Databricks az összes megadott változót a következőre
NULL
állítja be: .A kulcsszót a
DEFAULT
választólista-kifejezés helyett használhatja egy változó alapértelmezett értékére való beállításához.
Példák
> 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 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...
Kapcsolódó cikkek
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: