Udostępnij za pośrednictwem


Ustawianie operatorów

Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Łączy dwa podzapytania w jeden. Usługa Databricks SQL obsługuje trzy typy operatorów zestawów:

  • EXCEPT
  • INTERSECT
  • UNION

Składnia

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

    Wszystkie dwie subquery klauzule określone w elemektorze SELECT. Oba podzapytania muszą mieć taką samą liczbę kolumn i współdzielić najmniej wspólny typ dla każdej odpowiedniej kolumny.

  • UNION [ALL | DISTINCT]

    Zwraca wynik podzapytania2 subquery1 plus the rows of ".

    Jeśli ALL określono zduplikowane wiersze, są zachowywane.

    Jeśli DISTINCT zostanie określony wynik nie zawiera żadnych zduplikowanych wierszy. Jest to opcja domyślna.

  • INTERSECT [ALL | DISTINCT]

    Zwraca zestaw wierszy, które znajdują się w obu podzapytaniach.

    Jeśli ALL zostanie określony wiersz, który pojawia się wiele razy w subquery1 obiekcie , jak również w subquery , zostanie zwrócony wiele razy.

    Jeśli DISTINCT zostanie określony wynik nie zawiera zduplikowanych wierszy. Jest to opcja domyślna.

  • Z WYJĄTKIEM [WSZYSTKIE | DISTINCT ]

    Zwraca wiersze, w subquery1 których nie ma wartości subquery2.

    Jeśli ALL zostanie określony, każdy wiersz w subquery2 pliku spowoduje usunięcie dokładnie jednego z prawdopodobnie wielu dopasowań z elementu subquery1.

    Jeśli DISTINCT zostanie określony, zduplikowane wiersze zostaną usunięte przed subquery1 zastosowaniem operacji, więc wszystkie dopasowania zostaną usunięte, a wynik nie będzie miał zduplikowanych wierszy (dopasowanych lub niezgodnych). Jest to opcja domyślna.

    Można określić MINUS jako alternatywę składni dla elementu EXCEPT.

W przypadku tworzenia łańcucha operacji INTERSECT zestawu ma wyższy priorytet niż UNION i EXCEPT.

Typ każdej kolumny wyników jest najmniej typowym typem odpowiednich kolumn w kolumnach subquery1 i subquery2.

Przykłady

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