Expresión de tabla común (CTE)
Se aplica a: Databricks SQL Databricks Runtime
Define un conjunto de resultados temporal al que se puede hacer referencia posiblemente varias veces dentro del ámbito de una instrucción SQL. Una CTE se usa principalmente en una instrucción SELECT
.
Sintaxis
WITH common_table_expression [, ...]
common_table_expression
view_identifier [ ( column_identifier [, ...] ) ] [ AS ] ( query )
Parámetros
view_identifier
Identificador por el que se puede hacer referencia a
common_table_expression
.column_identifier
Identificador opcional por el que se puede hacer referencia a una columna de
common_table_expression
.Si se especifican identificadores
column_identifier
, su número debe coincidir con el de columnas devueltas porquery
. Si no se especifica ningún nombre, los nombres de columna se derivan dequery
.-
Consulta que genera un conjunto de resultados.
Ejemplos
-- CTE with multiple column aliases
> WITH t(x, y) AS (SELECT 1, 2)
SELECT * FROM t WHERE x = 1 AND y = 2;
1 2
-- CTE in CTE definition
> WITH t AS (
WITH t2 AS (SELECT 1)
SELECT * FROM t2)
SELECT * FROM t;
1
-- CTE in subquery
> SELECT max(c) FROM (
WITH t(c) AS (SELECT 1)
SELECT * FROM t);
1
-- CTE in subquery expression
> SELECT (WITH t AS (SELECT 1)
SELECT * FROM t);
1
-- CTE in CREATE VIEW statement
> CREATE VIEW v AS
WITH t(a, b, c, d) AS (SELECT 1, 2, 3, 4)
SELECT * FROM t;
> SELECT * FROM v;
1 2 3 4
-- CTE names are scoped
> WITH t AS (SELECT 1),
t2 AS (
WITH t AS (SELECT 2)
SELECT * FROM t)
SELECT * FROM t2;
2