Ekspresi tabel umum (CTE)

Berlaku untuk:centang ditandai ya pemeriksaan Databricks SQL ditandai ya Databricks Runtime

Menentukan kumpulan hasil sementara yang mungkin dapat Anda referensikan beberapa kali dalam cakupan pernyataan SQL. CTE digunakan terutama dalam pernyataan SELECT .

Sintaks

WITH common_table_expression [, ...]

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

Parameter

  • view_identifier

    Pengidentifikasi yang common_table_expression dapat dirujuk

  • column_identifier

    Pengidentifikasi opsional tempat kolom common_table_expression dapat dirujuk.

    Jika column_identifiers ditentukan, jumlahnya harus cocok dengan jumlah kolom yang dikembalikan oleh query. Jika tidak ada nama yang ditentukan, nama kolom berasal dari query.

  • Query

    Kueri yang menghasilkan tataan hasil.

Contoh

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