Lưu ý
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử đăng nhập hoặc thay đổi thư mục.
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử thay đổi thư mục.
Applies to:
Databricks SQL
Databricks Runtime
Separates expr1, …, exprN into numRows rows.
Syntax
stack(numRows, expr1 [, ...] )
Arguments
numRows: AnINTEGERliteral greater than 0 specifying the number of rows produced.exprN: An expression of any type. The type of anyexprNmust match the type ofexpr(N+numRows).
Returns
A set of numRows rows which includes max(1, (N/numRows)) columns produced by this function.
An incomplete row is padded with NULLs.
By default, the produced columns are named col0, … col(n-1).
stack is equivalent to the VALUES clause.
Applies to:
Databricks Runtime 12.1 and earlier:stackcan only be placed in theSELECTlist as the root of an expression or following a LATERAL VIEW. When placing the function in theSELECTlist there must be no other generator function in the sameSELECTlist or UNSUPPORTED_GENERATOR.MULTI_GENERATOR is raised.Applies to:
Databricks SQL
Databricks Runtime 12.2 LTS and above:Invocation from the LATERAL VIEW clause or the
SELECTlist is deprecated. Instead, invokestackas a table_reference.
Examples
Applies to:
Databricks Runtime 12.1 and earlier:
> 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
Applies to:
Databricks SQL
Databricks Runtime 12.2 LTS and above:
> 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