SnowConvert AI - Oracle - Jointures¶
Une jointure est une requête qui combine les lignes de deux ou plusieurs tables, vues ou vues matérialisées. La base de données Oracle effectue une jointure lorsque plusieurs tables apparaissent dans la clause
FROMde la requête.(Référence linguistique Oracle SQL JOINS)
Antijointure¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Une antijointure renvoie les lignes du côté gauche du prédicat pour lesquelles il n’y a pas de lignes correspondantes du côté droit du prédicat. Il renvoie les lignes qui ne correspondent pas (NOT IN) à la sous-requête du côté droit. La transformation antijointure ne peut pas être effectuée si la sous-requête se trouve sur une branche
ORde la clauseWHERE. (Référence linguistique Oracle SQL Antijointure).
Aucune transformation spéciale n’est effectuée pour ce type de jointure puisque Snowflake prend en charge la même syntaxe.
Modèles d’échantillons de sources¶
Note
Ajout de la clause Order by car l’ordre des résultats peut varier entre Oracle et Snowflake.
Note
Le jeu de résultats étant trop large, la clause de limitation des lignes a été ajoutée. Vous pouvez la supprimer pour récupérer le jeu de résultats.
Note
Consultez cette section pour définir la base de données de l’échantillon.
Where Not In¶
Oracle¶
Résultat¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
|---|---|---|
17 |
Ellen |
Abel |
166 |
Sundar |
Ande |
130 |
Mozhe |
Atkinson |
105 |
David |
Austin |
204 |
Hermann |
Baer |
167 |
Amit |
Banda |
172 |
Elizabeth |
Bates |
192 |
Sarah |
Bell |
151 |
David |
Bernstein |
129 |
Laura |
Bissot |
Snowflake¶
Résultat¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
|---|---|---|
17 |
Ellen |
Abel |
166 |
Sundar |
Ande |
130 |
Mozhe |
Atkinson |
105 |
David |
Austin |
204 |
Hermann |
Baer |
167 |
Amit |
Banda |
172 |
Elizabeth |
Bates |
192 |
Sarah |
Bell |
151 |
David |
Bernstein |
129 |
Laura |
Bissot |
Where Not Exists¶
Oracle¶
Résultat¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|
120 |
Trésorerie |
130 |
Impôt sur les sociétés |
140 |
Contrôle et crédits |
150 |
Services aux actionnaires |
160 |
Avantages |
170 |
Fabrication |
180 |
Construction |
190 |
Sous-traitance |
200 |
Opérations |
210 |
Prise en charge de IT |
Snowflake¶
Résultat¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|
120 |
Trésorerie |
130 |
Impôt sur les sociétés |
140 |
Contrôle et crédits |
150 |
Services aux actionnaires |
160 |
Avantages |
170 |
Fabrication |
180 |
Construction |
190 |
Sous-traitance |
200 |
Opérations |
210 |
Prise en charge de IT |
Problèmes connus¶
1. Results ordering mismatch between languages¶
Le résultat de la requête aura le même contenu dans les deux moteurs de base de données, mais l’ordre peut être différent si aucune clause Order By n’est définie dans la requête.
Jointure par bande¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Une jointure par bande est un type particulier de jointure sans équivoque dans lequel les valeurs clés d’un ensemble de données doivent se situer dans la plage spécifiée (« bande ») du second ensemble de données. La même table peut servir à la fois de premier et de second ensembles de données. (Référence linguistique Oracle SQL BandJoin)
Dans cette section, nous verrons comment une jointure par bande est exécutée dans Snowflake et le plan d’exécution est très similaire à la version améliorée d’Oracle.
Modèles d’échantillons de sources¶
Note
Ajout de la clause Order by car l’ordre des résultats peut varier entre Oracle et Snowflake.
Note
Le jeu de résultats étant trop large, la clause de limitation des lignes a été ajoutée. Vous pouvez la supprimer pour récupérer le jeu de résultats.
Note
Consultez cette section pour définir la base de données de l’échantillon.
Avertissement
Si vous migrez ce code sans créer de tables, le convertisseur ne sera pas en mesure de charger les informations sémantiques des colonnes et un avertissement apparaîtra lors des opérations arithmétiques.
Cas simple de Jointure par bande¶
Oracle¶
Résultat¶
SALARY COMPARISON |
|---|
Abel a un salaire compris entre 100 de moins et 100 de plus qu’Abel |
Abel a un salaire compris entre 100 de moins et 100 de plus que Cambrault |
Abel a un salaire compris entre 100 de moins et 100 de plus que Raphaely |
Ande a un salaire compris entre 100 de moins et 100 de plus que Ande |
Ande a un salaire compris entre 100 de moins et 100 de plus que Mavris |
Ande a un salaire compris entre 100 de moins et 100 de plus que Vollman |
Atkinson a un salaire compris entre 100 de moins et 100 de plus qu’Atkinson |
Atkinson a un salaire compris entre 100 de moins et 100 de plus que Baida |
Atkinson a un salaire compris entre 100 de moins et 100 de plus que Gates |
Atkinson a un salaire compris entre 100 de moins et 100 de plus que Geoni |
Snowflake¶
Résultat¶
SALARY COMPARISON |
|---|
Abel a un salaire compris entre 100 de moins et 100 de plus qu’Abel |
Abel a un salaire compris entre 100 de moins et 100 de plus que Cambrault |
Abel a un salaire compris entre 100 de moins et 100 de plus que Raphaely |
Ande a un salaire compris entre 100 de moins et 100 de plus que Ande |
Ande a un salaire compris entre 100 de moins et 100 de plus que Mavris |
Ande a un salaire compris entre 100 de moins et 100 de plus que Vollman |
Atkinson a un salaire compris entre 100 de moins et 100 de plus qu’Atkinson |
Atkinson a un salaire compris entre 100 de moins et 100 de plus que Baida |
Atkinson a un salaire compris entre 100 de moins et 100 de plus que Gates |
Atkinson a un salaire compris entre 100 de moins et 100 de plus que Geoni |
Avertissement
La migration de certaines instructions SELECT sans les tables correspondantes pourrait générer les SSC-EWI-OR0036: Problèmes de résolution des types. Pour éviter cet avertissement, incluez l’élément CREATE TABLE à l’intérieur du fichier.
Les résultats sont les mêmes, ce qui rend la fonctionnalité BAND JOIN équivalente.
Plan d’exécution
À titre d’information supplémentaire, la particularité des jointures par bande est le plan d’exécution.
L’image suivante montre le plan d’exécution amélioré (mis en œuvre depuis Oracle 12c) pour la requête de test :

Dans l’image suivante, nous voyons le plan d’exécution dans Snowflake :

Note
Le plan d’exécution dans Snowflake est très similaire à la version optimisée d’Oracle. La durée et les performances finales de la requête seront affectées par de nombreux autres facteurs et dépendent entièrement de chaque fonctionnalité interne DBMS.
Problèmes connus¶
1. Results ordering mismatch between languages¶
Le résultat de la requête aura le même contenu dans les deux moteurs de base de données, mais l’ordre peut être différent si aucune clause Order By n’est définie dans la requête.
EWIs connexes¶
SSC-EWI-OR0036: Problèmes de résolution des types, l’opération arithmétique peut ne pas se comporter correctement entre la chaîne et la date.
Produits cartésiens¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Si deux tables dans une requête de jointure n’ont pas de condition de jointure, Oracle Database renvoie leur produit cartésien. Oracle combine chaque ligne d’une table avec chaque ligne de l’autre table. (Référence Oracle SQL Sous-section Produits cartésiens)
Oracle et Snowflake sont également compatibles avec la syntaxe de jointure croisée ANSI qui a le même comportement qu’un produit cartésien.
Aucune transformation spéciale n’est effectuée pour ce type de jointure puisque Snowflake prend en charge la même syntaxe.
Modèles d’échantillons de sources¶
Note
La clause Order by a été ajoutée car l’ordre des résultats peut varier entre Oracle et Snowflake.
Note
Le jeu de résultats étant trop large, la clause de limitation des lignes a été ajoutée. Vous pouvez la supprimer pour récupérer le jeu de résultats.
Note
Consultez cette section pour définir la base de données de l’échantillon.
Syntaxe implicite¶
Oracle¶
Résultat 1¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
10 |
Administration |
200 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
50 |
Expédition |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
40 |
Ressources humaines |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
30 |
Achats |
114 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
20 |
Marketing |
201 |
1800 |
Résultat 2¶
COUNT(*) |
|---|
2889 |
Snowflake¶
Résultat 1¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
40 |
Ressources humaines |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
20 |
Marketing |
201 |
1800 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
10 |
Administration |
200 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
50 |
Expédition |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
30 |
Achats |
114 |
1700 |
Résultat 2¶
COUNT(*) |
|---|
2889 |
Syntaxe de jointure croisée¶
Oracle¶
Résultat 1¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
10 |
Administration |
200 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
50 |
Expédition |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
40 |
Ressources humaines |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
30 |
Achats |
114 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
20 |
Marketing |
201 |
1800 |
Résultat 2¶
COUNT(*) |
|---|
2889 |
Snowflake¶
Problèmes connus¶
1. Results ordering mismatch between languages¶
Le résultat de la requête aura le même contenu dans les deux moteurs de base de données, mais l’ordre peut être différent si aucune clause Order By n’est définie dans la requête.
EWIs connexes¶
Pas d’EWIs connexes.
Jointure par égalité¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
An equijoin is an implicit form of the join with a join condition containing an equality operator. For more information, see the Oracle Equijoin documentation.
Aucune transformation spéciale n’est effectuée pour ce type de jointure puisque Snowflake prend en charge la même syntaxe.
Modèles d’échantillons de sources¶
Note
Ajout de la clause Order by car l’ordre des résultats peut varier entre Oracle et Snowflake.
Note
Comme le jeu de résultats est trop important, la clause de limitation des lignes a été ajoutée. Vous pouvez la supprimer pour récupérer le jeu de résultats.
Note
Consultez cette section pour définir la base de données de l’échantillon.
Cas simple de jointure par égalité¶
Oracle¶
Résultat¶
LAST_NAME |
JOB_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|---|---|
Abel |
SA_REP |
80 |
Sales |
Ande |
SA_REP |
80 |
Sales |
Atkinson |
ST_CLERK |
50 |
Expédition |
Austin |
IT_PROG |
60 |
IT |
Baer |
PR_REP |
70 |
Relations publiques |
Snowflake¶
Résultat¶
LAST_NAME |
JOB_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|---|---|
Abel |
SA_REP |
80 |
Sales |
Ande |
SA_REP |
80 |
Sales |
Atkinson |
ST_CLERK |
50 |
Expédition |
Austin |
IT_PROG |
60 |
IT |
Baer |
PR_REP |
70 |
Relations publiques |
Problèmes connus¶
1. Results ordering mismatch between languages¶
Le résultat de la requête aura le même contenu dans les deux moteurs de base de données, mais l’ordre peut être différent si aucune clause Order By n’est définie dans la requête.
EWIs connexes¶
Pas d’EWIs connexes.
Jointure intérieure¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Une jointure interne (parfois appelée jointure simple) est une jointure de deux tables ou plus qui renvoie uniquement les lignes qui satisfont à la condition de jointure. (Référence Oracle SQL Sous-section Jointure interne).
Modèles d’échantillons de sources¶
Note
Ajout de la clause Order by car l’ordre des résultats peut varier entre Oracle et Snowflake.
Note
Le jeu de résultats étant trop large, la clause de limitation des lignes a été ajoutée. Vous pouvez supprimer cette clause pour récupérer le jeu de résultats.
Note
Consultez cette section pour définir la base de données de l’échantillon.
Jointure interne simple¶
Dans la clause de jointure interne, « INNER » est un mot-clé facultatif, les requêtes suivantes ont deux selects qui récupèrent le même jeu de données.
Oracle¶
Résultat¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
90 |
Exécution |
100 |
1700 |
||
101 |
Neena |
Kochchar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
90 |
Exécution |
100 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
90 |
Exécution |
100 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 00:00:00.000 |
IT_PROG |
9000 |
102 |
60 |
60 |
IT |
103 |
1400 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 00:00:00.000 |
FI_MGR |
12008 |
101 |
100 |
100 |
Finances |
108 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
108 |
100 |
100 |
Finances |
108 |
1700 |
Snowflake¶
Résultat¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
90 |
Exécution |
100 |
1700 |
||
101 |
Neena |
Kochchar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
90 |
90 |
Exécution |
100 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
90 |
90 |
Exécution |
100 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 |
IT_PROG |
9000.00 |
102 |
60 |
60 |
IT |
103 |
1400 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 |
FI_MGR |
12008.00 |
101 |
100 |
100 |
Finances |
108 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
108 |
100 |
100 |
Finances |
108 |
1700 |
Jointure interne avec clause d’utilisation¶
Oracle¶
Résultat¶
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
90 |
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
Exécution |
100 |
1700 |
||
90 |
101 |
Neena |
Kochchar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
Exécution |
100 |
1700 |
|
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
Exécution |
100 |
1700 |
|
60 |
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 00:00:00.000 |
IT_PROG |
9000 |
102 |
IT |
103 |
1400 |
|
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
103 |
IT |
103 |
1400 |
|
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
103 |
IT |
103 |
1400 |
|
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
103 |
IT |
103 |
1400 |
|
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
103 |
IT |
103 |
1400 |
|
100 |
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 00:00:00.000 |
FI_MGR |
12008 |
101 |
Finances |
108 |
1700 |
|
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
108 |
Finances |
108 |
1700 |
Snowflake¶
Résultat¶
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
90 |
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
Exécution |
100 |
1700 |
||
90 |
101 |
Neena |
Kochchar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
Exécution |
100 |
1700 |
|
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
Exécution |
100 |
1700 |
|
60 |
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 |
IT_PROG |
9000.00 |
102 |
IT |
103 |
1400 |
|
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
103 |
IT |
103 |
1400 |
|
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
103 |
IT |
103 |
1400 |
|
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
103 |
IT |
103 |
1400 |
|
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
103 |
IT |
103 |
1400 |
|
100 |
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 |
FI_MGR |
12008.00 |
101 |
Finances |
108 |
1700 |
|
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
108 |
Finances |
108 |
1700 |
Jointure interne croisée¶
Oracle¶
Résultat¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
110 |
Comptabilité |
205 |
1700 |
||
101 |
Neena |
Kochchar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
110 |
Comptabilité |
205 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
110 |
Comptabilité |
205 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 00:00:00.000 |
IT_PROG |
9000 |
102 |
60 |
110 |
Comptabilité |
205 |
1700 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
103 |
60 |
110 |
Comptabilité |
205 |
1700 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
110 |
Comptabilité |
205 |
1700 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
110 |
Comptabilité |
205 |
1700 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
103 |
60 |
110 |
Comptabilité |
205 |
1700 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 00:00:00.000 |
FI_MGR |
12008 |
101 |
100 |
110 |
Comptabilité |
205 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
108 |
100 |
110 |
Comptabilité |
205 |
1700 |
Snowflake¶
Résultat¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
110 |
Comptabilité |
205 |
1700 |
||
101 |
Neena |
Kochchar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
90 |
110 |
Comptabilité |
205 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
90 |
110 |
Comptabilité |
205 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 |
IT_PROG |
9000.00 |
102 |
60 |
110 |
Comptabilité |
205 |
1700 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
103 |
60 |
110 |
Comptabilité |
205 |
1700 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
103 |
60 |
110 |
Comptabilité |
205 |
1700 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
103 |
60 |
110 |
Comptabilité |
205 |
1700 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
103 |
60 |
110 |
Comptabilité |
205 |
1700 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 |
FI_MGR |
12008.00 |
101 |
100 |
110 |
Comptabilité |
205 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
108 |
100 |
110 |
Comptabilité |
205 |
1700 |
Joint intérieur naturel¶
Oracle¶
Résultat¶
MANAGER_ID |
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
DEPARTMENT_NAME |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
90 |
101 |
Neena |
Kochchar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
Exécution |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
Exécution |
1700 |
|
103 |
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
IT |
1400 |
|
103 |
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
IT |
1400 |
|
103 |
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
IT |
1400 |
|
103 |
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
IT |
1400 |
|
108 |
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
Finances |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 00:00:00.000 |
FI_ACCOUNT |
8200 |
Finances |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 00:00:00.000 |
FI_ACCOUNT |
7700 |
Finances |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 00:00:00.000 |
FI_ACCOUNT |
7800 |
Finances |
1700 |
Snowflake¶
Résultat¶
MANAGER_ID |
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
DEPARTMENT_NAME |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
90 |
101 |
Neena |
Kochchar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
Exécution |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
Exécution |
1700 |
|
103 |
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
IT |
1400 |
|
103 |
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
IT |
1400 |
|
103 |
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
IT |
1400 |
|
103 |
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
IT |
1400 |
|
108 |
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
Finances |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 |
FI_ACCOUNT |
8200.00 |
Finances |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 |
FI_ACCOUNT |
7700.00 |
Finances |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 |
FI_ACCOUNT |
7800.00 |
Finances |
1700 |
Jointure naturelle croisée¶
Oracle¶
Résultat¶
MANAGER_ID |
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
DEPARTMENT_NAME |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
90 |
101 |
Neena |
Kochchar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
Exécution |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
Exécution |
1700 |
|
103 |
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
IT |
1400 |
|
103 |
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
IT |
1400 |
|
103 |
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
IT |
1400 |
|
103 |
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
IT |
1400 |
|
108 |
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
Finances |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 00:00:00.000 |
FI_ACCOUNT |
8200 |
Finances |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 00:00:00.000 |
FI_ACCOUNT |
7700 |
Finances |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 00:00:00.000 |
FI_ACCOUNT |
7800 |
Finances |
1700 |
Snowflake¶
Résultat¶
MANAGER_ID |
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
DEPARTMENT_NAME |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
90 |
101 |
Neena |
Kochchar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
Exécution |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
Exécution |
1700 |
|
103 |
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
IT |
1400 |
|
103 |
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
IT |
1400 |
|
103 |
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
IT |
1400 |
|
103 |
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
IT |
1400 |
|
108 |
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
Finances |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 |
FI_ACCOUNT |
8200.00 |
Finances |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 |
FI_ACCOUNT |
7700.00 |
Finances |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 |
FI_ACCOUNT |
7800.00 |
Finances |
1700 |
Jointure croisée naturelle¶
Oracle¶
Résultat¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
10 |
Administration |
200 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
100 |
Finances |
108 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
90 |
Exécution |
100 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
80 |
Sales |
145 |
2500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
70 |
Relations publiques |
204 |
2700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
60 |
IT |
103 |
1400 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
50 |
Expédition |
121 |
1500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
40 |
Ressources humaines |
203 |
2400 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
30 |
Achats |
114 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
20 |
Marketing |
201 |
1800 |
Snowflake¶
Résultat¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
80 |
Sales |
145 |
2500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
20 |
Marketing |
201 |
1800 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
60 |
IT |
103 |
1400 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
70 |
Relations publiques |
204 |
2700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
90 |
Exécution |
100 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
30 |
Achats |
114 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
10 |
Administration |
200 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
100 |
Finances |
108 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
50 |
Expédition |
121 |
1500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
40 |
Ressources humaines |
203 |
2400 |
Problèmes connus¶
1. Results ordering mismatch between languages¶
Le résultat de la requête aura le même contenu dans les deux moteurs de base de données, mais l’ordre peut être différent si aucune clause Order By n’est définie dans la requête.
EWIs connexes¶
Pas d’EWIs connexes.
Jointure extérieure¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Une jointure externe étend le résultat d’une jointure simple. Une jointure externe renvoie toutes les lignes qui satisfont à la condition de jointure et renvoie certaines ou toutes les lignes d’une table pour lesquelles aucune ligne de l’autre table ne satisfait à la condition de jointure. (Référence linguistique Oracle SQL Sous-section Jointures externes).
Syntaxe Oracle ANSI¶
Oracle prend également en charge l’opérateur (+) qui peut être utilisé pour effectuer des jointures externes. Cet opérateur est ajouté à une expression de colonne dans la clause WHERE.
Syntaxe Snowflake ANSI¶
Snowflake also supports the ANSI syntax for OUTER JOINS, just like Oracle. However, the behavior when using the (+) operator might be different depending on the usage. For more information, see the Snowflake JOIN documentation.
La grammaire Snowflake est l’une des suivantes :
Modèles d’échantillons de sources¶
Note
Ajout de la clause Order by car l’ordre des résultats peut varier entre Oracle et Snowflake.
Note
Le jeu de résultats étant trop large, la clause de limitation des lignes a été ajoutée. Vous pouvez la supprimer pour récupérer le jeu de résultats.
Note
Consultez cette section pour définir la base de données de l’échantillon.
Note
Pour les exemples suivants, ces instructions d’insertion et de modification ont été exécutées afin de mieux distinguer le résultat pour chaque type de JOIN :
1. ANSI syntax¶
Snowflake prend entièrement en charge la syntaxe ANSI pour SQL JOINS. Le comportement est le même pour les deux moteurs de base de données.
Jointure externe gauche sur¶
Oracle¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Pays inconnu |
0 |
||
AR |
Argentine |
2 |
2 |
Amériques |
AU |
Australie |
3 |
3 |
Asie |
BE |
Belgique |
1 |
1 |
Europe |
BR |
Brésil |
2 |
2 |
Amériques |
CA |
Canada |
2 |
2 |
Amériques |
CH |
Suisse |
1 |
1 |
Europe |
CN |
Chine |
3 |
3 |
Asie |
DE |
Allemagne |
1 |
1 |
Europe |
DK |
Danemark |
1 |
1 |
Europe |
Snowflake¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Pays inconnu |
0.0000000000000000000 |
||
AR |
Argentine |
2.0000000000000000000 |
2.0000000000000000000 |
Amériques |
AU |
Australie |
3.0000000000000000000 |
3.0000000000000000000 |
Asie |
BE |
Belgique |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
BR |
Brésil |
2.0000000000000000000 |
2.0000000000000000000 |
Amériques |
CA |
Canada |
2.0000000000000000000 |
2.0000000000000000000 |
Amériques |
CH |
Suisse |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
CN |
Chine |
3.0000000000000000000 |
3.0000000000000000000 |
Asie |
DE |
Allemagne |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
DK |
Danemark |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
Jointure externe droite sur¶
Oracle¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5 |
Océanie |
||
ZW |
Zimbabwe |
4 |
4 |
Moyen-Orient et Afrique |
ZM |
Zambie |
4 |
4 |
Moyen-Orient et Afrique |
US |
États-Unis d’Amérique |
2 |
2 |
Amériques |
UK |
Royaume-Uni |
1 |
1 |
Europe |
SG |
Singapour |
3 |
3 |
Asie |
NL |
Pays-Bas |
1 |
1 |
Europe |
NG |
Nigeria |
4 |
4 |
Moyen-Orient et Afrique |
MX |
Mexique |
2 |
2 |
Amériques |
ML |
Malaisie |
3 |
3 |
Asie |
Snowflake¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5.0000000000000000000 |
Océanie |
||
ZW |
Zimbabwe |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
ZM |
Zambie |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
US |
États-Unis d’Amérique |
2.0000000000000000000 |
2.0000000000000000000 |
Amériques |
UK |
Royaume-Uni |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
SG |
Singapour |
3.0000000000000000000 |
3.0000000000000000000 |
Asie |
NL |
Pays-Bas |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
NG |
Nigeria |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
MX |
Mexique |
2.0000000000000000000 |
2.0000000000000000000 |
Amériques |
ML |
Malaisie |
3.0000000000000000000 |
3.0000000000000000000 |
Asie |
Jointure externe complète sur¶
Oracle¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Pays inconnu |
0 |
||
– |
5 |
Océanie |
||
EG |
Égypte |
4 |
4 |
Moyen-Orient et Afrique |
IL |
Israël |
4 |
4 |
Moyen-Orient et Afrique |
KW |
Koweït |
4 |
4 |
Moyen-Orient et Afrique |
NG |
Nigeria |
4 |
4 |
Moyen-Orient et Afrique |
ZM |
Zambie |
4 |
4 |
Moyen-Orient et Afrique |
ZW |
Zimbabwe |
4 |
4 |
Moyen-Orient et Afrique |
BE |
Belgique |
1 |
1 |
Europe |
CH |
Suisse |
1 |
1 |
Europe |
Snowflake¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Pays inconnu |
0.0000000000000000000 |
||
– |
5.0000000000000000000 |
Océanie |
||
EG |
Égypte |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
IL |
Israël |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
KW |
Koweït |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
NG |
Nigeria |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
ZM |
Zambie |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
ZW |
Zimbabwe |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
BE |
Belgique |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
CH |
Suisse |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
2. Natural Outer Join¶
Oracle et Snowflake prennent tous deux en charge la jointure externe naturelle et se comportent de la même manière.
Un NATURALJOIN est identique à un JOIN explicite sur les colonnes communes des deux tables, à ceci près que les colonnes communes ne sont incluses qu’une seule fois dans la sortie. (Une jointure naturelle suppose que les colonnes portant le même nom, mais situées dans des tables différentes, contiennent des données correspondantes.) (Référence linguistique Snowflake SQL JOIN)
Jointure externe gauche naturelle¶
Oracle¶
Résultat¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0 |
– |
Pays inconnu |
|
2 |
AR |
Argentine |
Amériques |
3 |
AU |
Australie |
Asie |
1 |
BE |
Belgique |
Europe |
2 |
BR |
Brésil |
Amériques |
2 |
CA |
Canada |
Amériques |
1 |
CH |
Suisse |
Europe |
3 |
CN |
Chine |
Asie |
1 |
DE |
Allemagne |
Europe |
1 |
DK |
Danemark |
Europe |
Snowflake¶
Résultat¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0.0000000000000000000 |
– |
Pays inconnu |
|
2.0000000000000000000 |
AR |
Argentine |
Amériques |
3.0000000000000000000 |
AU |
Australie |
Asie |
1.0000000000000000000 |
BE |
Belgique |
Europe |
2.0000000000000000000 |
BR |
Brésil |
Amériques |
2.0000000000000000000 |
CA |
Canada |
Amériques |
1.0000000000000000000 |
CH |
Suisse |
Europe |
3.0000000000000000000 |
CN |
Chine |
Asie |
1.0000000000000000000 |
DE |
Allemagne |
Europe |
1.0000000000000000000 |
DK |
Danemark |
Europe |
Jointure externe droite naturelle¶
Oracle¶
Résultat¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
5 |
Océanie |
||
4 |
ZW |
Zimbabwe |
Moyen-Orient et Afrique |
4 |
ZM |
Zambie |
Moyen-Orient et Afrique |
2 |
US |
États-Unis d’Amérique |
Amériques |
1 |
UK |
Royaume-Uni |
Europe |
3 |
SG |
Singapour |
Asie |
1 |
NL |
Pays-Bas |
Europe |
4 |
NG |
Nigeria |
Moyen-Orient et Afrique |
2 |
MX |
Mexique |
Amériques |
3 |
ML |
Malaisie |
Asie |
Snowflake¶
Résultat¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
5.0000000000000000000 |
Océanie |
||
4.0000000000000000000 |
ZW |
Zimbabwe |
Moyen-Orient et Afrique |
4.0000000000000000000 |
ZM |
Zambie |
Moyen-Orient et Afrique |
2.0000000000000000000 |
US |
États-Unis d’Amérique |
Amériques |
1.0000000000000000000 |
UK |
Royaume-Uni |
Europe |
3.0000000000000000000 |
SG |
Singapour |
Asie |
1.0000000000000000000 |
NL |
Pays-Bas |
Europe |
4.0000000000000000000 |
NG |
Nigeria |
Moyen-Orient et Afrique |
2.0000000000000000000 |
MX |
Mexique |
Amériques |
3.0000000000000000000 |
ML |
Malaisie |
Asie |
3. Basic Outer Join with USING¶
Les colonnes d’une table peuvent être jointes à l’aide du mot-clé USING. Les résultats seront les mêmes que ceux d’une recherche de base sur OUTER JOIN avec le mot-clé ON.
Jointure externe gauche Using¶
Oracle¶
Résultat¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0 |
– |
Pays inconnu |
|
2 |
AR |
Argentine |
Amériques |
3 |
AU |
Australie |
Asie |
1 |
BE |
Belgique |
Europe |
2 |
BR |
Brésil |
Amériques |
2 |
CA |
Canada |
Amériques |
1 |
CH |
Suisse |
Europe |
3 |
CN |
Chine |
Asie |
1 |
DE |
Allemagne |
Europe |
1 |
DK |
Danemark |
Europe |
Snowflake¶
Résultat¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0.0000000000000000000 |
– |
Pays inconnu |
|
2.0000000000000000000 |
AR |
Argentine |
Amériques |
3.0000000000000000000 |
AU |
Australie |
Asie |
1.0000000000000000000 |
BE |
Belgique |
Europe |
2.0000000000000000000 |
BR |
Brésil |
Amériques |
2.0000000000000000000 |
CA |
Canada |
Amériques |
1.0000000000000000000 |
CH |
Suisse |
Europe |
3.0000000000000000000 |
CN |
Chine |
Asie |
1.0000000000000000000 |
DE |
Allemagne |
Europe |
1.0000000000000000000 |
DK |
Danemark |
Europe |
4. (+) Operator¶
Oracle et Snowflake disposent d’un opérateur (+) qui peut également être utilisé pour les jointures externes. Dans certains cas, Snowflake peut ne pas fonctionner correctement lorsque vous utilisez cet opérateur.
Pour plus d’informations concernant cet opérateur dans Snowflake, cliquez ici.
Jointure externe gauche avec l’opérateur (+)¶
Oracle¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Pays inconnu |
0 |
||
AR |
Argentine |
2 |
2 |
Amériques |
AU |
Australie |
3 |
3 |
Asie |
BE |
Belgique |
1 |
1 |
Europe |
BR |
Brésil |
2 |
2 |
Amériques |
CA |
Canada |
2 |
2 |
Amériques |
CH |
Suisse |
1 |
1 |
Europe |
CN |
Chine |
3 |
3 |
Asie |
DE |
Allemagne |
1 |
1 |
Europe |
DK |
Danemark |
1 |
1 |
Europe |
Snowflake¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Pays inconnu |
0.0000000000000000000 |
||
AR |
Argentine |
2.0000000000000000000 |
2.0000000000000000000 |
Amériques |
AU |
Australie |
3.0000000000000000000 |
3.0000000000000000000 |
Asie |
BE |
Belgique |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
BR |
Brésil |
2.0000000000000000000 |
2.0000000000000000000 |
Amériques |
CA |
Canada |
2.0000000000000000000 |
2.0000000000000000000 |
Amériques |
CH |
Suisse |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
CN |
Chine |
3.0000000000000000000 |
3.0000000000000000000 |
Asie |
DE |
Allemagne |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
DK |
Danemark |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
Jointure externe droite avec l’opérateur (+)¶
Oracle¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5 |
Océanie |
||
ZW |
Zimbabwe |
4 |
4 |
Moyen-Orient et Afrique |
ZM |
Zambie |
4 |
4 |
Moyen-Orient et Afrique |
US |
États-Unis d’Amérique |
2 |
2 |
Amériques |
UK |
Royaume-Uni |
1 |
1 |
Europe |
SG |
Singapour |
3 |
3 |
Asie |
NL |
Pays-Bas |
1 |
1 |
Europe |
NG |
Nigeria |
4 |
4 |
Moyen-Orient et Afrique |
MX |
Mexique |
2 |
2 |
Amériques |
ML |
Malaisie |
3 |
3 |
Asie |
Snowflake¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5.0000000000000000000 |
Océanie |
||
ZW |
Zimbabwe |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
ZM |
Zambie |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
US |
États-Unis d’Amérique |
2.0000000000000000000 |
2.0000000000000000000 |
Amériques |
UK |
Royaume-Uni |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
SG |
Singapour |
3.0000000000000000000 |
3.0000000000000000000 |
Asie |
NL |
Pays-Bas |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
NG |
Nigeria |
4.0000000000000000000 |
4.0000000000000000000 |
Moyen-Orient et Afrique |
MX |
Mexique |
2.0000000000000000000 |
2.0000000000000000000 |
Amériques |
ML |
Malaisie |
3.0000000000000000000 |
3.0000000000000000000 |
Asie |
Table unique jointe à plusieurs tables avec (+)¶
Dans Oracle, vous pouvez joindre une table unique à plusieurs tables à l’aide de l’opérateur (+), mais Snowflake ne prend pas en charge cette opération. Les requêtes contenant ce type de jointures externes seront converties en syntaxe ANSI.
Oracle¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
|---|---|---|---|---|---|---|---|
1 |
Europe |
2000 |
40-5-12 Laogianggen |
190518 |
Beijing |
||
CH |
Suisse |
1 |
Europe |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
1 |
Europe |
2100 |
1298 Vileparle (E) |
490231 |
Bombay |
||
CH |
Suisse |
1 |
Europe |
2900 |
20 Rue des Corps-Saints |
1730 |
Genève |
1 |
Europe |
1300 |
9450 Kamiya-cho |
6823 |
Hiroshima |
||
UK |
Royaume-Uni |
1 |
Europe |
2400 |
8204 Arthur St |
Londres |
|
1 |
Europe |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexico City |
||
DE |
Allemagne |
1 |
Europe |
2700 |
Schwanthalerstr. 7031 |
80925 |
Munich |
UK |
Royaume-Uni |
1 |
Europe |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
Oxford |
IT |
Italie |
1 |
Europe |
1000 |
1297 Via Cola di Rie |
00989 |
Rome |
Snowflake¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
|---|---|---|---|---|---|---|---|
1.0000000000000000000 |
Europe |
2000 |
40-5-12 Laogianggen |
190518 |
Beijing |
||
CH |
Suisse |
1.0000000000000000000 |
Europe |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
1.0000000000000000000 |
Europe |
2100 |
1298 Vileparle (E) |
490231 |
Bombay |
||
CH |
Suisse |
1.0000000000000000000 |
Europe |
2900 |
20 Rue des Corps-Saints |
1730 |
Genève |
1.0000000000000000000 |
Europe |
1300 |
9450 Kamiya-cho |
6823 |
Hiroshima |
||
UK |
Royaume-Uni |
1.0000000000000000000 |
Europe |
2400 |
8204 Arthur St |
Londres |
|
1.0000000000000000000 |
Europe |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexico City |
||
DE |
Allemagne |
1.0000000000000000000 |
Europe |
2700 |
Schwanthalerstr. 7031 |
80925 |
Munich |
UK |
Royaume-Uni |
1.0000000000000000000 |
Europe |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
Oxford |
IT |
Italie |
1.0000000000000000000 |
Europe |
1000 |
1297 Via Cola di Rie |
00989 |
Rome |
Utilisation de l’opérateur (+) avec une colonne d’une table non jointe et une valeur autre qu’une colonne¶
Dans Oracle, vous pouvez utiliser l’opérateur (+) avec une colonne et la joindre à une valeur qui n’est pas une colonne d’une autre table. Snowflake peut également le faire, mais il échouera si la table de la colonne n’a pas été jointe à une autre table. Pour résoudre ce problème, l’opérateur (+) est supprimé de la requête lorsque ce scénario se produit et le résultat sera le même que dans Oracle.
Oracle¶
Résultat¶
REGION_ID |
REGION_NAME |
|---|---|
2 |
Amériques |
3 |
Asie |
Snowflake¶
Résultat¶
REGION_ID |
REGION_NAME |
|---|---|
2.0000000000000000000 |
Amériques |
3.0000000000000000000 |
Asie |
Problèmes connus¶
Pour tous les cas non pris en charge, veuillez consulter les EWIs pour obtenir des recommandations et des solutions de contournement.
1. Converted Outer Joins to ANSI syntax might reorder the columns¶
Lorsqu’une requête comportant une jointure externe non-ANSI est convertie en jointure externe ANSI, l’ordre des colonnes peut être modifié dans la requête convertie. Pour corriger ce problème, essayez de sélectionner les colonnes dans l’ordre spécifique requis.
Oracle¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1 |
Europe |
2000 |
40-5-12 Laogianggen |
190518 |
Beijing |
CN |
||||
CH |
Suisse |
1 |
1 |
Europe |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
BE |
CH |
1 |
Europe |
2100 |
1298 Vileparle (E) |
490231 |
Bombay |
Maharashtra |
IN |
|||
CH |
Suisse |
1 |
1 |
Europe |
2900 |
20 Rue des Corps-Saints |
1730 |
Genève |
Genève |
CH |
1 |
Europe |
1300 |
9450 Kamiya-cho |
6823 |
Hiroshima |
JP |
||||
UK |
Royaume-Uni |
1 |
1 |
Europe |
2400 |
8204 Arthur St |
Londres |
UK |
||
1 |
Europe |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexico City |
District fédéral |
MX |
|||
DE |
Allemagne |
1 |
1 |
Europe |
2700 |
Schwanthalerstr. 7031 |
80925 |
Munich |
Bavière |
DE |
UK |
Royaume-Uni |
1 |
1 |
Europe |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
Oxford |
Oxford |
UK |
IT |
Italie |
1 |
1 |
Europe |
1000 |
1297 Via Cola di Rie |
00989 |
Rome |
IT |
Snowflake¶
Résultat¶
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1.0000000000000000000 |
Europe |
2000 |
40-5-12 Laogianggen |
190518 |
Beijing |
CN |
||||
1.0000000000000000000 |
Europe |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
BE |
CH |
CH |
Suisse |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
2100 |
1298 Vileparle (E) |
490231 |
Bombay |
Maharashtra |
IN |
|||
1.0000000000000000000 |
Europe |
2900 |
20 Rue des Corps-Saints |
1730 |
Genève |
Genève |
CH |
CH |
Suisse |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
1300 |
9450 Kamiya-cho |
6823 |
Hiroshima |
JP |
||||
1.0000000000000000000 |
Europe |
2400 |
8204 Arthur St |
Londres |
UK |
UK |
Royaume-Uni |
1.0000000000000000000 |
||
1.0000000000000000000 |
Europe |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexico City |
District fédéral |
MX |
|||
1.0000000000000000000 |
Europe |
2700 |
Schwanthalerstr. 7031 |
80925 |
Munich |
Bavière |
DE |
DE |
Allemagne |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
Oxford |
Oxford |
UK |
UK |
Royaume-Uni |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
1000 |
1297 Via Cola di Rie |
00989 |
Rome |
IT |
IT |
Italie |
1.0000000000000000000 |
2. Outer joined between predicate with an interval with multiple tables¶
Les prédicats entre peuvent être utilisés pour les OUTER JOINS non-ANSI. Dans Oracle, les colonnes à l’intérieur de l’intervalle peuvent faire l’objet d’une jointure externe, même si elles proviennent de tables différentes. Cependant, Snowflake ne prend pas en charge ce cas. Dans ces cas, le prédicat entre sera commenté.
Oracle¶
Résultat¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1 |
Europe |
2000 |
40-5-12 Laogianggen |
190518 |
Beijing |
CN |
||||
1 |
Europe |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
BE |
CH |
|||
1 |
Europe |
2100 |
1298 Vileparle (E) |
490231 |
Bombay |
Maharashtra |
IN |
|||
1 |
Europe |
2900 |
20 Rue des Corps-Saints |
1730 |
Genève |
Genève |
CH |
|||
1 |
Europe |
1300 |
9450 Kamiya-cho |
6823 |
Hiroshima |
JP |
||||
1 |
Europe |
2400 |
8204 Arthur St |
Londres |
UK |
|||||
1 |
Europe |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexico City |
District fédéral |
MX |
|||
1 |
Europe |
2700 |
Schwanthalerstr. 7031 |
80925 |
Munich |
Bavière |
DE |
|||
1 |
Europe |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
Oxford |
Oxford |
UK |
|||
1 |
Europe |
1000 |
1297 Via Cola di Rie |
00989 |
Rome |
IT |
Snowflake¶
EWIs connexes¶
SSC-EWI-OR0090: La jointure extérieure non Ansi a un prédicat Between (entre) non valide.
Autojointure¶
Note
Certaines parties des codes de sortie sont omises pour des raisons de clarté.
Description¶
Une autojointure est une jointure d’une table à elle-même. Cette table apparaît deux fois dans la clause
FROMet est suivie d’alias de table qui qualifient les noms de colonne dans la condition de jointure. (Référence linguistique Oracle SQL Sous-section Autojointure)
Modèles d’échantillons de sources¶
Note
Ajout de la clause Order by car l’ordre des résultats peut varier entre Oracle et Snowflake.
Note
Consultez cette section pour définir la base de données de l’échantillon.
Cas simple d’Autojointure¶
Oracle¶
Résultat¶
Employés et leurs responsables |
|---|
Rajs travaille pour Mourgos |
Raphaely travaille pour King |
Rogers travaille pour Kaufling |
Russel travaille pour King |
Snowflake¶
Résultat¶
Employés et leurs responsables |
|---|
Rajs travaille pour Mourgos |
Raphaely travaille pour King |
Rogers travaille pour Kaufling |
Russel travaille pour King |
Note
Comme nous l’avons prouvé précédemment, la fonctionnalité autojointure dans Oracle est équivalente à celle de Snowflake.
Problèmes connus¶
Aucun problème n’a été constaté.
EWIs connexes¶
Pas d’EWIs connexes.
Semi-jointure¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Description¶
Une semi-jointure renvoie les lignes qui correspondent à une sous-requête
EXISTSsans dupliquer les lignes du côté gauche du prédicat lorsque plusieurs lignes du côté droit satisfont aux critères de la sous-requête. La transformation en sous-requête ne peut pas être effectuée si la sous-requête se trouve sur une brancheORde la clauseWHERE. (Référence linguistique Oracle SQL Sous-section Semi-jointure)
Modèles d’échantillons de sources¶
Note
Ajout de la clause Order by car l’ordre des résultats peut varier entre Oracle et Snowflake.
Note
Consultez cette section pour définir la base de données de l’échantillon.
Cas simple de semi-jointure¶
Oracle¶
Résultat¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|---|---|---|---|
110 |
Comptabilité |
205 |
1700 |
10 |
Administration |
200 |
1700 |
90 |
Exécution |
100 |
1700 |
100 |
Finances |
108 |
1700 |
40 |
Ressources humaines |
203 |
2400 |
60 |
IT |
103 |
1400 |
20 |
Marketing |
201 |
1800 |
70 |
Relations publiques |
204 |
2700 |
30 |
Achats |
114 |
1700 |
80 |
Sales |
145 |
2500 |
50 |
Expédition |
121 |
1500 |
Snowflake¶
Résultat¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|---|---|---|---|
110 |
Comptabilité |
205 |
1700 |
10 |
Administration |
200 |
1700 |
90 |
Exécution |
100 |
1700 |
100 |
Finances |
108 |
1700 |
40 |
Ressources humaines |
203 |
2400 |
60 |
IT |
103 |
1400 |
20 |
Marketing |
201 |
1800 |
70 |
Relations publiques |
204 |
2700 |
30 |
Achats |
114 |
1700 |
80 |
Sales |
145 |
2500 |
50 |
Expédition |
121 |
1500 |
Note
Comme nous l’avons prouvé précédemment, la semi-jointure Oracle est fonctionnellement équivalente à Snowflake.
Problèmes connus¶
Aucun problème n’a été constaté.
EWIs connexes¶
Pas d’EWIs connexes.