Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime 16.3 a vyšší
Opakujte provádění seznamu příkazů pro každý řádek vrácený dotazem.
Tento příkaz lze použít pouze ve složeném příkazu .
Syntaxe
[ label : ] FOR [ variable_name AS ] query
DO
{ stmt ; } [...]
END FOR [ label ]
Parametry
-
Volitelný popisek smyčky, který je jedinečný mezi všemi popisky pro příkazy, ve kterých je příkaz
FORobsažen. Pokud je zadaný koncový popisek, musí odpovídat počátečnímu popisku. Popisek lze použít k tomu, aby OPUSTIL nebo OPAKOVAL smyčku. Chcete-li kvalifikovat odkazy na sloupce smyčky, použijtevariable_name, nikolilabel. -
Volitelný název, který můžete použít jako kvalifikátor při odkazování na sloupce v kurzoru.
stmtPříkaz SQL
Poznámky
Pokud dotaz pracuje s tabulkou, která je také upravena v těle smyčky, sémantika závisí na zdroji dat.
U tabulek Delta zůstane dotaz nedotčený.
Databricks nezaručuje úplné spuštění dotazu, pokud se smyčka FOR dokončí předčasně kvůli příkazu LEAVE nebo chybovému stavu.
Pokud během provádění dotazu dojde k výjimkám nebo vedlejším účinkům, Databricks nezaručuje, v jakém okamžiku v rámci smyčky k nim dojde.
Často FOR smyčky lze nahradit relačními dotazy, které jsou obvykle efektivnější.
Příklady
-- sum up all odd numbers from 1 through 10
> BEGIN
DECLARE sum INT DEFAULT 0;
sumNumbers: FOR row AS SELECT num FROM range(1, 20) AS t(num) DO
IF num > 10 THEN
LEAVE sumNumbers;
ELSEIF num % 2 = 0 THEN
ITERATE sumNumbers;
END IF;
SET sum = sum + row.num;
END FOR sumNumbers;
VALUES (sum);
END;
25
-- Compare with the much more efficient relational computation:
> SELECT sum(num) FROM range(1, 10) AS t(num) WHERE num % 2 = 1;
25
Související články
- skriptování SQL
- Příkaz CASE
- složený příkaz
- PŘÍKAZ LOOP
- příkaz WHILE
- Příkaz REPEAT
- Příkaz LEAVE
- příkaz ITERATE