Compartilhar via


CTE (expressão de tabela comum)

Aplica-se a: marca de seleção positiva SQL do Databricks marca de seleção positiva Runtime do Databricks

Define um conjunto de resultados temporário que você pode referenciar possivelmente várias vezes dentro do escopo de uma instrução SQL. Uma CTE é usada principalmente em uma instrução SELECT.

Sintaxe

WITH common_table_expression [, ...]

common_table_expression
  view_identifier [ ( column_identifier [, ...] ) ] [ AS ] ( query )

Parâmetros

  • view_identifier

    Um identificador pelo qual common_table_expression pode ser referenciado

  • column_identifier

    Um identificador opcional pelo qual uma coluna de common_table_expression pode ser referenciada.

    Se column_identifiers forem especificados, seu número deverá corresponder ao número de colunas retornadas pelo query. Se nenhum nome for especificado, os nomes das colunas serão derivados do query.

  • consulta

    Uma consulta que produz um conjunto de resultados.

Exemplos

-- 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