Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Databricks SQL
Databricks Runtime
Szétválasztja expr1
, …, exprN
numRows
sorokra.
Szintaxis
stack(numRows, expr1 [, ...] )
Argumentumok
-
numRows
INTEGER
: 0-nál nagyobb literál, amely a létrehozott sorok számát határozza meg. -
exprN
: Bármilyen típusú kifejezés. Az egyikexprN
típusának meg kell egyeznie a típusávalexpr(N+numRows)
.
Visszaküldések
A függvény által létrehozott numRows
oszlopokat tartalmazó max(1, (N/numRows))
sorkészlet.
Egy hiányos sor NULL
karakterekkel van kitöltve.
Alapértelmezés szerint a létrehozott oszlopok neve col0, … col(n-1)
.
stack
egyenértékű a VALUES
záradékkal.
A következőkre vonatkozik:
Databricks Runtime 12.1 és korábbi verziók:
stack
csak kifejezés gyökereként vagy egySELECT
követésével helyezhető el a LATERAL VIEW listában. Ha a függvényt aSELECT
listába helyezi el, nem lehet más generátorfüggvény ugyanabban aSELECT
listában, különben keletkezik a UNSUPPORTED_GENERATOR.MULTI_GENERATOR hiba.A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 12.2 LTS és újabb:
A LATERAL VIEW záradék vagy a
SELECT
lista hivatkozása elavult. Ehelyett hívjon megstack
table_reference.
Példák
A következőkre vonatkozik: Databricks Runtime 12.1 és korábbi verziók:
> 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
A következőkre vonatkozik: Databricks SQL
Databricks Runtime 12.2 LTS és újabb:
> 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