Operators instellen

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

Combineert twee subquery's tot één subquery. Databricks SQL ondersteunt drie typen setoperators:

  • EXCEPT
  • INTERSECT
  • UNION

Syntaxis

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

    subquery Twee componenten zoals opgegeven in SELECT. Beide subquery's moeten hetzelfde aantal kolommen hebben en een minst gemeenschappelijk type voor elke respectieve kolom hebben.

  • UNION [ALLE | DISTINCT]

    Retourneert het resultaat van subquery1 plus the rows of subquery2'.

    Als ALL is opgegeven, blijven dubbele rijen behouden.

    Als DISTINCT is opgegeven, bevat het resultaat geen dubbele rijen. Dit is de standaardinstelling.

  • INTERSECT [ALLE | DISTINCT]

    Retourneert de set rijen die zich in beide subquery's bevinden.

    Als ALL is opgegeven, wordt een rij die meerdere keren wordt weergegeven in en subquery1 in subquery meerdere keren geretourneerd.

    Als DISTINCT is opgegeven, bevat het resultaat geen dubbele rijen. Dit is de standaardinstelling.

  • BEHALVE [ALLE | DISTINCT ]

    Retourneert de rijen die subquery1 zich niet in subquery2bevinden.

    Als ALL is opgegeven, verwijdert elke rij in subquery2 precies één van mogelijk meerdere overeenkomsten uit subquery1.

    Als DISTINCT is opgegeven, worden dubbele rijen verwijderd voordat subquery1 de bewerking wordt toegepast, zodat alle overeenkomsten worden verwijderd en het resultaat geen dubbele rijen heeft (overeenkomend of niet-overeenkomend). Dit is de standaardinstelling.

    U kunt opgeven MINUS als een syntaxis alternatief voor EXCEPT.

Wanneer bewerkingen van een ketenset INTERSECT een hogere prioriteit hebben dan UNION en EXCEPT.

Het type van elke resultaatkolom is het minst voorkomende type van de respectieve kolommen in subquery1 en subquery2.

Voorbeelden

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