Common Table Expression (CTE)

Van toepassing op:gemarkeerd met ja Databricks SQL-controle gemarkeerd als ja Databricks Runtime

Definieert een tijdelijke resultatenset waarnaar u mogelijk meerdere keren kunt verwijzen binnen het bereik van een SQL-instructie. Een CTE wordt voornamelijk gebruikt in een SELECT -instructie.

Syntaxis

WITH common_table_expression [, ...]

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

Parameters

  • view_identifier

    Een id waarmee kan worden verwezen naar de common_table_expression

  • column_identifier

    Een optionele id waarmee kan worden verwezen naar een kolom van de common_table_expression .

    Als column_identifiers zijn opgegeven, moet het aantal kolommen overeenkomen met het aantal kolommen dat wordt geretourneerd door de query. Als er geen namen zijn opgegeven, worden de kolomnamen afgeleid van de query.

  • Query

    Een query die een resultatenset produceert.

Voorbeelden

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