Compartir a través de


Expresión de tabla común (CTE)

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí 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 por query. Si no se especifica ningún nombre, los nombres de columna se derivan de query.

  • consulta

    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