Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op: de Databricks Runtime
14.1 en hoger
Variabelen zijn getypeerde en schema-gekwalificeerde objecten die waarden opslaan die privé zijn voor een sessie. In Azure Databricks-variabelen zijn tijdelijke en gedeclareerd binnen een sessie met behulp van de DECLARE VARIABLE-instructie.
De termen tijdelijke variabele en sessievariabele zijn uitwisselbaar.
Het schema waarin tijdelijke variabelen zich bevinden, is system.session.
Een variabele wordt impliciet verwijderd aan het einde van de sessie die deze definieert. Maar u kunt het eerder expliciet verwijderen met behulp van de DROP VARIABLE-instructie.
Wanneer een variabele is gedefinieerd, wordt de waarde NULL of het resultaat van de optioneel opgegeven standaardexpressie.
U kunt de waarde van een willekeurig aantal variabelen wijzigen met de SET variabele instructie op elk gewenst moment tijdens de sessie.
Wanneer in een query wordt verwezen naar namen van variabelen, delen zij hun naamruimte met kolomnamen, kolomaliassen en functieparameternamen. Variabelen zijn de laatste in de volgorde van oplossing in geval van naamconflicten.
Variabelen verschillen semantisch van parametermarkeringen op drie manieren:
- Parametermarkeringen bestaan alleen binnen één instructie. De aanroepende API moet de waarde en het type opgeven. Variabelen bestaan voor de duur van een sessie, zodat ze in meerdere instructies kunnen worden verwezen zonder dat er voor elke instructie een waarde hoeft te worden doorgegeven.
- Variabelen kunnen worden ingesteld zonder de context van SQL te verlaten.
- Er kan naar variabelen worden verwezen in de hoofdteksten van tijdelijke weergaven en SQL-functies. Wanneer u naar een tijdelijke weergave of tijdelijke SQL-functie verwijst, wordt de huidige waarde van een variabele in de hoofdtekst gebruikt.
De IDENTIFIER-clausule accepteert variabelen als argumenten. Met deze functie kunt u identificatoren parameteriseren door het gebruik van variabelen en de resultaten van query's die worden gebruikt om die variabelen in te stellen.
Voorbeelden
-- 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
Verwante artikelen
- DECLARE VARIABLE
- DROP VARIABLE
- IDENTIFIER clausule
- parametermarkeringen
- naamsresolutie
- SET variabele
- naam van variabele