Opérateurs de jeu
S’applique à : Databricks SQL Databricks Runtime
Combine deux sous-requêtes en une seule. Databricks SQL prend en charge trois types d’opérateurs d’ensemble :
EXCEPT
INTERSECT
UNION
Syntaxe
subquery1 { { UNION [ ALL | DISTINCT ] |
INTERSECT [ ALL | DISTINCT ] |
EXCEPT [ ALL | DISTINCT ] } subquery2 } [...] }
subquery1, subquery2
Deux clauses
subquery
comme spécifié dans SELECT. Les deux sous-requêtes doivent avoir le même nombre de colonnes et partager un moindre type commun pour chaque colonne correspondante.UNION [ALL | DISTINCT]
Retourne le résultat de
subquery1 plus the rows of
subquery2`.Si
ALL
est spécifié, les lignes en double sont conservées.Si
DISTINCT
est spécifié, le résultat ne contient pas de lignes en double. Il s’agit de la valeur par défaut.INTERSECT [ALL | DISTINCT]
Retourne l’ensemble de lignes qui figurent dans les deux sous-requêtes.
Si
ALL
est spécifié, une ligne apparaissant plusieurs fois danssubquery1
, ainsi que danssubquery
, est retournée plusieurs fois.Si
DISTINCT
est spécifié, le résultat ne contient pas de lignes en double. Il s’agit de la valeur par défaut.EXCEPT [ALL | DISTINCT ]
Retourne les lignes figurant dans
subquery1
qui ne pas figurent pas danssubquery2
.Si
ALL
est spécifié, chaque ligne danssubquery2
supprime desubquery1
exactement une des correspondances éventuellement multiples.Si
DISTINCT
est spécifié, les lignes en double sont supprimées desubquery1
avant l’application de l’opération, de sorte que toutes les correspondances sont supprimées et que le résultat ne contient pas de lignes en double (correspondantes ou non). Il s’agit de la valeur par défaut.Vous pouvez spécifier
MINUS
comme une alternative syntaxique pourEXCEPT
.
Lorsque le chaînage d’opérations d’ensemble INTERSECT
a une priorité plus élevée que UNION
et EXCEPT
.
Le type de chaque colonne de résultats est le type le moins courant des colonnes correspondantes dans subquery1
et subquery2
.
Si la colonne de résultat est un STRING
son classement est dérivé en appliquant les règles de priorité de classement aux colonnes des sous-requêtes.
Exemples
-- 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