Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir:
Databricks SQL
Databricks Runtime 16.3 ve üzeri
Sorgu tarafından döndürülen her satır için komut listesinin yürütülmesini tekrarlayın.
Bu deyim yalnızca bileşik deyimi içinde kullanılabilir.
Sözdizimi
[ label : ] FOR [ variable_name AS ] query
DO
{ stmt ; } [...]
END FOR [ label ]
Parametreler
-
döngü için, içinde
FORdeyiminin bulunduğu deyimlerin tüm etiketleri arasında benzersiz olan isteğe bağlı bir etiket. Bir bitiş etiketi belirtilirse, başlangıç etiketiyle eşleşmesi gerekir. Etiket, LEAVE veya YINELEME döngü için kullanılabilir. Döngü sütunu başvurularını nite etmek içinvariable_namedeğillabelkullanın. -
İmleçteki sütunlara başvururken niteleyici olarak kullanabileceğiniz isteğe bağlı bir ad.
stmtSQL deyimi
Notlar
Sorgu, döngünün gövdesinde de değiştirilen bir tabloda çalışırsa, semantik veri kaynağına bağlıdır.
Delta tabloları için sorgu etkilenmez.
FOR döngüsü bir LEAVE deyimi veya hata koşulu nedeniyle erken tamamlanırsa Databricks sorgunun tam yürütülmesini garanti etmez.
Sorgunun yürütülmesi sırasında özel durumlar veya yan etkiler oluştuğunda, Databricks döngü içinde hangi noktada bunların gerçekleşdiğini garanti etmez.
FOR döngüleri genellikle daha verimli olan ilişkisel sorgularla değiştirilebilir.
Örnekler
-- 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