Sdílet prostřednictvím


Nastavit operátory

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

Kombinuje předchozí subquery1 a subquery2 do jednoho. Azure Databricks podporuje tři typy operátorů sady:

  • EXCEPT
  • INTERSECT
  • UNION

Syntaxe

{ UNION | INTRECEPT | EXCEPT } [ ALL | DISTINCT ] subquery2 } [...]
  • poddotaz2

    Jakékoli dvě subquery klauzule uvedené v SELECT (dílčí výběr). Oba poddotazy musí mít stejný počet sloupců a pro každý sloupec musí sdílet nejméně společný typ.

  • UNION [ALL | DISTINCT]

    Vrátí výsledek subquery1 plus řádky subquery2.

    Pokud ALL jsou zadány duplicitní řádky jsou zachovány.

    Pokud DISTINCT je zadán výsledek neobsahuje žádné duplicitní řádky. Tato možnost je výchozí.

  • INTERSECT [ALL | DISTINCT]

    Vrátí sadu řádků, které jsou v obou poddotazech.

    Pokud ALL je zadán řádek, který se zobrazí vícekrát v subquery1 i v subquery případě, že se vrátí vícekrát.

    Pokud DISTINCT je zadán výsledek neobsahuje duplicitní řádky. Tato možnost je výchozí.

  • KROMĚ [VŠE | DISTINCT ]

    Vrátí řádky, ve subquery1 kterých nejsou subquery2.

    Pokud je zadán ALL, každý řádek v subquery2 odebere z subquery1přesně jednu z více shod .

    Pokud DISTINCT je zadáno, duplicitní řádky se před subquery1 použitím operace odeberou, takže všechny shody se odeberou a výsledek nebude obsahovat žádné duplicitní řádky (odpovídající nebo chybějící). Tato možnost je výchozí.

    Můžete zadat MINUS jako alternativu syntaxe pro EXCEPT.

Při řetězení operací s množinami má INTERSECT vyšší prioritu než UNION a EXCEPT.

Typ každého výsledného sloupce je nejmenší společný typ příslušných sloupců v subquery1 a subquery2.

Pokud je výsledný sloupec STRING, jeho soustava je odvozena použitím pravidel priority soustavy na sloupce v poddotazích.

Příklady

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