Operators instellen
Van toepassing op: Databricks SQL Databricks Runtime
Hiermee worden twee subquery's gecombineerd 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 delen.UNION [ALL | DISTINCT]
Retourneert het resultaat van
subquery1 plus the rows of
subquery2'.Als
ALL
er dubbele rijen zijn opgegeven, blijven behouden.Als
DISTINCT
het resultaat is opgegeven, bevat het geen dubbele rijen. Dit is de standaardinstelling.INTERSECT [ALL | DISTINCT]
Retourneert de set rijen die zich in beide subquery's bevinden.
Als
ALL
er een rij wordt opgegeven die meerdere keren wordt weergegeven in desubquery1
enesubquery
rij, wordt meerdere keren geretourneerd.Als
DISTINCT
wordt opgegeven, bevat het resultaat geen dubbele rijen. Dit is de standaardinstelling.BEHALVE [ALLE | DISTINCT ]
Retourneert de rijen
subquery1
waarin zich niet insubquery2
.Als
ALL
dit is opgegeven, wordt elke rijsubquery2
in exact één van mogelijk meerdere overeenkomsten verwijderd uitsubquery1
.Als
DISTINCT
dit is opgegeven, worden dubbele rijen verwijderdsubquery1
voordat 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 alternatief voor syntaxis voorEXCEPT
.
Bij het koppelen van setbewerkingen INTERSECT
heeft een hogere prioriteit 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