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.
Şunlar için geçerlidir: Databricks SQL
Databricks Runtime
expr1
, ..., exprN
öğesini satırlara ayırırnumRows
.
Söz dizimi
stack(numRows, expr1 [, ...] )
Bağımsız değişkenler
-
numRows
INTEGER
: Üretilen satır sayısını belirten 0'dan büyük bir değişmez değer. -
exprN
: Herhangi bir türde bir ifade. Herhangi birininexprN
türü, türüyleexpr(N+numRows)
eşleşmelidir.
Döndürülenler
Bu işlev tarafından üretilen sütunları içeren numRows
bir satır kümesimax(1, (N/numRows))
.
Tamamlanmamış bir satır s ile NULL
doldurulur.
Varsayılan olarak, üretilen sütunlar olarak adlandırılır col0, … col(n-1)
.
stack
yan tümcesine VALUES
eşdeğerdir.
Şunlar için geçerlidir:
Databricks Runtime 12.1 ve öncesi:
stack
yalnızcaSELECT
listesine bir ifadenin kökü olarak veya bir LATERAL VIEW'den sonra gelecek şekilde yerleştirilebilir. İşleviSELECT
listeye yerleştirirken, aynıSELECT
listede veya UNSUPPORTED_GENERATOR başka bir oluşturucu işlevi olmamalıdır. MULTI_GENERATOR yükseltilir.Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 12.2 LTS ve üzeri:
LATERAL VIEW yan tümcesinden veya
SELECT
listesinden çağrı kullanım dışı bırakıldı. Bunun yerine table_referencestack
çağırabilirsiniz.
Örnekler
Şunlar için geçerlidir: Databricks Runtime 12.1 ve öncesi:
> SELECT 'hello', stack(2, 1, 2, 3) AS (first, second), 'world';
hello 1 2 world
hello 3 NULL world
> SELECT 'hello', stack(2, 1, 2, 3) AS (first, second), stack(2, 'a', 'b') AS (third) 'world';
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
-- Equivalent usage of VALUES
> SELECT 'hello', s1.*, s2.*, 'world'
FROM VALUES(1, 2), (3, NULL) AS s1(first, second),
VALUES('a'), ('b') AS s2(third);
hello 1 2 a world
hello 3 NULL a world
hello 1 2 b world
hello 3 NULL b world
Şunlar için geçerlidir: Databricks SQL
Databricks Runtime 12.2 LTS ve üzeri:
> SELECT 'hello', s.*, 'world'
FROM stack(2, 1, 2, 3) AS s(first, second);
hello 1 2 world
hello 3 NULL world
> SELECT 'hello', s1.*, s2.*, 'world'
FROM stack(2, 1, 2, 3) AS s1(first, second),
stack(2, 'a', 'b') AS s2(third);
hello 1 2 a world
hello 3 NULL a world
hello 1 2 b world
hello 3 NULL b world