Megosztás a következőn keresztül:


Operátorok beállítása

A következőkre vonatkozik: jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Két al lekérdezést egyesít egyetlenbe. A Databricks SQL háromféle halmaz-operátort támogat:

  • EXCEPT
  • INTERSECT
  • UNION

Syntax

subquery1 { { UNION [ ALL | DISTINCT ] |
              INTERSECT [ ALL | DISTINCT ] |
              EXCEPT [ ALL | DISTINCT ] } subquery2 } [...] }
  • subquery1, subquery2

    A SELECT-ben megadott két subquery záradék. Mindkét al lekérdezésnek azonos számú oszlopmal kell rendelkeznie, és az egyes oszlopokhoz legalább közös típussal kell rendelkeznie.

  • UNION [ALL | DISTINCT]

    A subquery2' eredményét subquery1 plus the rows of adja vissza.

    Ha ALL a megadott ismétlődő sorok megmaradnak.

    Ha DISTINCT meg van adva, az eredmény nem tartalmaz ismétlődő sorokat. Ez az alapértelmezett beállítás.

  • INTERSECT [ALL | DISTINCT]

    A két al lekérdezésben lévő sorok halmazát adja vissza.

    Ha ALL meg van adva egy sor, amely többször jelenik meg a sorban és a subquery1 beben subquery is, a rendszer többször is visszaadja.

    Ha DISTINCT meg van adva, az eredmény nem tartalmaz ismétlődő sorokat. Ez az alapértelmezett beállítás.

  • KIVÉVE [MIND | DISTINCT ]

    Azokat a sorokat adja vissza, amelyekben subquery1 nincsenek megadva subquery2.

    Ha ALL meg van adva, minden sor subquery2 pontosan az egyiket távolítja el a több egyezésből subquery1.

    Ha DISTINCT meg van adva, a művelet alkalmazása előtt a program eltávolítja subquery1 az ismétlődő sorokat, így az összes egyezés el lesz távolítva, és az eredmény nem lesz ismétlődő sorokkal (egyező vagy nem egyező). Ez az alapértelmezett beállítás.

    Szintaxis alternatívaként megadható MINUS a következőhöz EXCEPT: .

Ha a láncolásos halmazműveletek INTERSECT nagyobb elsőbbséget élveznek, mint UNION és EXCEPT.

Az egyes eredményoszlopok típusa a legkevésbé gyakori típus a megfelelő és subquery1 subquery2a .

Példák

-- Use number1 and number2 tables to demonstrate set operators in this page.
> CREATE TEMPORARY VIEW number1(c) AS VALUES (3), (1), (2), (2), (3), (4);

> CREATE TEMPORARY VIEW number2(c) AS VALUES (5), (1), (1), (2);

> SELECT c FROM number1 EXCEPT SELECT c FROM number2;
  3
  4

> SELECT c FROM number1 MINUS SELECT c FROM number2;
  3
  4

> SELECT c FROM number1 EXCEPT ALL (SELECT c FROM number2);
  3
  3
  4

> SELECT c FROM number1 MINUS ALL (SELECT c FROM number2);
  3
  3
  4

> (SELECT c FROM number1) INTERSECT (SELECT c FROM number2);
  1
  2

> (SELECT c FROM number1) INTERSECT DISTINCT (SELECT c FROM number2);
  1
  2

> (SELECT c FROM number1) INTERSECT ALL (SELECT c FROM number2);
  1
  2
  2

> (SELECT c FROM number1) UNION (SELECT c FROM number2);
  1
  3
  5
  4
  2

> (SELECT c FROM number1) UNION DISTINCT (SELECT c FROM number2);
  1
  3
  5
  4
  2

> SELECT c FROM number1 UNION ALL (SELECT c FROM number2);
  3
  1
  2
  2
  3
  4
  5
  1
  1
  2