SnowConvert AI – Oracle – Joins¶
Ein Join ist eine Abfrage, die Zeilen aus zwei oder mehr Tabellen, Ansichten oder materialisierten Ansichten kombiniert. Oracle Database führt eine Verknüpfung durch, wenn mehrere Tabellen in der
FROM-Klausel der Abfrage erscheinen. (Oracle SQL Language Reference JOINS)
Antijoin¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Ein Antijoin gibt Zeilen auf der linken Seite des Prädikats zurück, für die es keine entsprechenden Zeilen auf der rechten Seite des Prädikats gibt. Er gibt Zeilen zurück, die nicht mit der Unterabfrage auf der rechten Seite übereinstimmen (NOT IN). Die Antijoin-Transformation kann nicht durchgeführt werden, wenn sich die Unterabfrage auf einem
OR-Zweig derWHERE-Klausel befindet. (Oracle SQL Language Reference Anti Join).
Für diese Art von Join wird keine spezielle Transformation durchgeführt, da Snowflake dieselbe Syntax unterstützt.
Beispielhafte Quellcode-Muster¶
Bemerkung
Die ORDER BY-Klausel hinzugefügt, da die Reihenfolge der Ergebnisse zwischen Oracle und Snowflake variieren kann.
Bemerkung
Da die Ergebnismenge zu groß ist, wurde die Zeilenbegrenzungsklausel hinzugefügt. Sie können es entfernen, um das gesamte Resultset abzurufen.
Bemerkung
Prüfen Sie diesen Abschnitt SnowConvert AI – Oracle – Beispieldaten, um die Beispieldatenbank einzurichten.
Nicht enthalten¶
Oracle¶
Ergebnis¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
|---|---|---|
174 |
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¶
Ergebnis¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
|---|---|---|
174 |
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 |
Nicht vorhanden¶
Oracle¶
Ergebnis¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|
120 |
Schatzamt |
130 |
Unternehmenssteuer |
140 |
Controlling und Credit |
150 |
Aktionärsdienste |
160 |
Vorteile |
170 |
Manufacturing |
180 |
Konstruktion |
190 |
Verträge |
200 |
Operationen |
210 |
Unterstützung von IT |
Snowflake¶
Ergebnis¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|
120 |
Schatzamt |
130 |
Unternehmenssteuer |
140 |
Controlling und Credit |
150 |
Aktionärsdienste |
160 |
Vorteile |
170 |
Manufacturing |
180 |
Konstruktion |
190 |
Verträge |
200 |
Operationen |
210 |
Unterstützung von IT |
Bekannte Probleme¶
1. Results ordering mismatch between languages¶
Das Ergebnis der Abfrage hat in beiden Datenbank-Engines den gleichen Inhalt, aber die Reihenfolge kann unterschiedlich sein, wenn in der Abfrage keine ORDER BY-Klausel definiert ist.
Band Join¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Ein Band Join ist ein spezieller Typ von nonequijoin, bei dem die Schlüsselwerte in einem Datensatz in den angegebenen Bereich („Band“) des zweiten Datensatzes fallen müssen. Dieselbe Tabelle kann sowohl als erster als auch als zweiter Datensatz dienen. (Oracle SQL Language Reference BandJoin)
In diesem Abschnitt werden wir sehen, wie ein Band Join in Snowflake ausgeführt wird. Der Ausführungsplan ist der verbesserten Version von Oracle sehr ähnlich.
Beispielhafte Quellcode-Muster¶
Bemerkung
ORDER BY-Klausel hinzugefügt, da die Reihenfolge der Ergebnisse zwischen Oracle und Snowflake variieren kann.
Bemerkung
Da die Ergebnismenge zu groß ist, wurde die Zeilenbegrenzungsklausel hinzugefügt. Sie können es entfernen, um das gesamte Resultset abzurufen.
Bemerkung
Prüfen Sie diesen Abschnitt SnowConvert AI – Oracle – Beispieldaten, um die Beispieldatenbank einzurichten.
Warnung
Wenn Sie diesen Code ohne die Tabellenerstellung migrieren, kann der Konverter die semantischen Informationen der Spalten nicht laden und es wird eine Warnung bei den arithmetischen Operationen angezeigt.
Einfacher Band-Join-Fall¶
Oracle¶
Ergebnis¶
SALARY-COMPARISON |
|---|
Abels Gehalt liegt zwischen 100 weniger und 100 mehr als das von Abel |
Abels Gehalt liegt zwischen 100 weniger und 100 mehr als das von Cambrault |
Abels Gehalt liegt zwischen 100 weniger und 100 mehr als das von Raphaely |
Andes Gehalt liegt zwischen 100 weniger und 100 mehr als das von Ande |
Andes Gehalt liegt zwischen 100 weniger und 100 mehr als das von Mavris |
Andes Gehalt liegt zwischen 100 weniger und 100 mehr als das von Vollman |
Atkinsons Gehalt liegt zwischen 100 weniger und 100 mehr als das von Atkinson |
Atkinsons Gehalt liegt zwischen 100 weniger und 100 mehr als das von Baida |
Atkinsons Gehalt liegt zwischen 100 weniger und 100 mehr als das von Gates |
Atkinsons Gehalt liegt zwischen 100 weniger und 100 mehr als das von Geoni |
Snowflake¶
Ergebnis¶
SALARY-COMPARISON |
|---|
Abels Gehalt liegt zwischen 100 weniger und 100 mehr als das von Abel |
Abels Gehalt liegt zwischen 100 weniger und 100 mehr als das von Cambrault |
Abels Gehalt liegt zwischen 100 weniger und 100 mehr als das von Raphaely |
Andes Gehalt liegt zwischen 100 weniger und 100 mehr als das von Ande |
Andes Gehalt liegt zwischen 100 weniger und 100 mehr als das von Mavris |
Andes Gehalt liegt zwischen 100 weniger und 100 mehr als das von Vollman |
Atkinsons Gehalt liegt zwischen 100 weniger und 100 mehr als das von Atkinson |
Atkinsons Gehalt liegt zwischen 100 weniger und 100 mehr als das von Baida |
Atkinsons Gehalt liegt zwischen 100 weniger und 100 mehr als das von Gates |
Atkinsons Gehalt liegt zwischen 100 weniger und 100 mehr als das von Geoni |
Warnung
Die Migration einiger SELECT-Anweisungen ohne die entsprechenden Tabellen könnte zu einem SSC-EWI-OR0036 führen: Probleme bei der Auflösung von Typen. Um diese Warnung zu vermeiden, fügen Sie CREATE TABLE innerhalb der Datei ein.
Die Ergebnisse sind die gleichen, so dass BAND JOIN funktional gleichwertig ist.
Ausführungsplan
Als zusätzliche Information ist das Besondere an Band Joins der Ausführungsplan.
Das folgende Bild zeigt den erweiterten Ausführungsplan (implementiert seit Oracle 12c) für die Testabfrage:

Und im folgenden Bild sehen wir den Ausführungsplan in Snowflake:

Bemerkung
Der Ausführungsplan in Snowflake ist der optimierten Version von Oracle sehr ähnlich. Die endgültige Dauer und Leistung der Abfrage wird von vielen anderen Faktoren beeinflusst und hängt vollständig von der internen Funktionalität der einzelnen DBMS ab.
Bekannte Probleme¶
1. Results ordering mismatch between languages¶
Das Ergebnis der Abfrage hat in beiden Datenbank-Engines den gleichen Inhalt, aber die Reihenfolge kann unterschiedlich sein, wenn in der Abfrage keine ORDER BY-Klausel definiert ist.
Zugehörige EWIs¶
SSC-EWI-OR0036: Bei Problemen mit der Auflösung von Typen verhält sich die arithmetische Operation zwischen Zeichenfolge und Datum möglicherweise nicht korrekt.
Kartesische Produkte¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Wenn zwei Tabellen in einer Datenbankabfrage keine Join-Bedingung haben, dann gibt Oracle Database ihr kartesisches Produkt zurück. Oracle kombiniert jede Zeile der einen Tabelle mit jeder Zeile der anderen. (Oracle SQL-Referenz: Unterabschnitt „Kartesische Produkte“)
Oracle und Snowflake sind auch mit der ANSI-Cross Join-Syntax kompatibel, die die gleiche Verhaltensweise wie ein kartesisches Produkt hat.
Für diese Art von Join wird keine spezielle Transformation durchgeführt, da Snowflake dieselbe Syntax unterstützt.
Beispielhafte Quellcode-Muster¶
Bemerkung
Die ORDER BY-Klausel wurde hinzugefügt, weil die Reihenfolge der Ergebnisse zwischen Oracle und Snowflake variieren kann.
Bemerkung
Da die Ergebnismenge zu groß ist, wurde die Zeilenbegrenzungsklausel hinzugefügt. Sie können es entfernen, um das gesamte Resultset abzurufen.
Bemerkung
Prüfen Sie diesen Abschnitt SnowConvert AI – Oracle – Beispieldaten, um die Beispieldatenbank einzurichten.
Implizite Syntax¶
Oracle¶
Ergebnis 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 |
Versand |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
40 |
Human Resources |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
30 |
Purchasing |
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 |
Ergebnis 2¶
COUNT(*) |
|---|
2889 |
Snowflake¶
Ergebnis 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 |
Human Resources |
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 |
Versand |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
30 |
Purchasing |
114 |
1700 |
Ergebnis 2¶
COUNT(*) |
|---|
2889 |
Syntax für Kreuzverknüpfungen (Cross Join Syntax)¶
Oracle¶
Ergebnis 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 |
Versand |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
40 |
Human Resources |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
30 |
Purchasing |
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 |
Ergebnis 2¶
COUNT(*) |
|---|
2889 |
Snowflake¶
Bekannte Probleme¶
1. Results ordering mismatch between languages¶
Das Ergebnis der Abfrage hat in beiden Datenbank-Engines den gleichen Inhalt, aber die Reihenfolge kann unterschiedlich sein, wenn in der Abfrage keine ORDER BY-Klausel definiert ist.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
Equijoin¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
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.
Für diese Art von Join wird keine spezielle Transformation durchgeführt, da Snowflake dieselbe Syntax unterstützt.
Beispielhafte Quellcode-Muster¶
Bemerkung
Die ORDER BY-Klausel hinzugefügt, da die Reihenfolge der Ergebnisse zwischen Oracle und Snowflake variieren kann.
Bemerkung
Da das Resultset zu groß ist, wurde die Zeilenbegrenzungsklausel hinzugefügt. Sie können es entfernen, um das gesamte Resultset abzurufen.
Bemerkung
Prüfen Sie diesen Abschnitt SnowConvert AI – Oracle – Beispieldaten, um die Beispieldatenbank einzurichten.
Grundlegender Equijoin-Fall¶
Oracle¶
Ergebnis¶
LAST_NAME |
JOB_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|---|---|
Abel |
SA_REP |
80 |
Sales |
Ande |
SA_REP |
80 |
Sales |
Atkinson |
ST_CLERK |
50 |
Versand |
Austin |
IT_PROG |
60 |
IT |
Baer |
PR_REP |
70 |
Public Relations |
Snowflake¶
Ergebnis¶
LAST_NAME |
JOB_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|---|---|
Abel |
SA_REP |
80 |
Sales |
Ande |
SA_REP |
80 |
Sales |
Atkinson |
ST_CLERK |
50 |
Versand |
Austin |
IT_PROG |
60 |
IT |
Baer |
PR_REP |
70 |
Public Relations |
Bekannte Probleme¶
1. Results ordering mismatch between languages¶
Das Ergebnis der Abfrage hat in beiden Datenbank-Engines den gleichen Inhalt, aber die Reihenfolge kann unterschiedlich sein, wenn in der Abfrage keine ORDER BY-Klausel definiert ist.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
Innere Verknüpfung (Inner Join)¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Ein Inner Join (manchmal auch einfacher Join genannt) ist eine Verknüpfung von zwei oder mehr Tabellen, die nur die Zeilen zurückgibt, die die Join-Bedingung erfüllen. (Oracle SQL Referenz: Unterabschnitt Inner Join).
Beispielhafte Quellcode-Muster¶
Bemerkung
ORDER BY-Klausel hinzugefügt, da die Reihenfolge der Ergebnisse zwischen Oracle und Snowflake variieren kann.
Bemerkung
Da die Ergebnismenge zu groß ist, wurde die Zeilenbegrenzungsklausel hinzugefügt. Sie können diese Klausel entfernen, um die Ergebnismenge abzurufen.
Bemerkung
Prüfen Sie diesen Abschnitt SnowConvert AI – Oracle – Beispieldaten, um die Beispieldatenbank einzurichten.
Grundlegender Inner Join¶
In der INNER JOIN-Klausel ist INNER ein optionales Schlüsselwort. Die folgenden Abfragen haben zwei Selects, die denselben Datensatz abrufen.
Oracle¶
Ergebnis¶
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 |
Executive |
100 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
90 |
Executive |
100 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
90 |
Executive |
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 |
Finanzen |
108 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
108 |
100 |
100 |
Finanzen |
108 |
1700 |
Snowflake¶
Ergebnis¶
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 |
Executive |
100 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
90 |
90 |
Executive |
100 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
90 |
90 |
Executive |
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 |
Finanzen |
108 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
108 |
100 |
100 |
Finanzen |
108 |
1700 |
INNER JOIN mit Klausel¶
Oracle¶
Ergebnis¶
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 |
Executive |
100 |
1700 |
||
90 |
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
Executive |
100 |
1700 |
|
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
Executive |
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 |
Finanzen |
108 |
1700 |
|
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
108 |
Finanzen |
108 |
1700 |
Snowflake¶
Ergebnis¶
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 |
Executive |
100 |
1700 |
||
90 |
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
Executive |
100 |
1700 |
|
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
Executive |
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 |
Finanzen |
108 |
1700 |
|
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
108 |
Finanzen |
108 |
1700 |
Cross Inner Join¶
Oracle¶
Ergebnis¶
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 |
Buchhaltung |
205 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
110 |
Buchhaltung |
205 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
110 |
Buchhaltung |
205 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 00:00:00.000 |
IT_PROG |
9000 |
102 |
60 |
110 |
Buchhaltung |
205 |
1700 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
103 |
60 |
110 |
Buchhaltung |
205 |
1700 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
110 |
Buchhaltung |
205 |
1700 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
110 |
Buchhaltung |
205 |
1700 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
103 |
60 |
110 |
Buchhaltung |
205 |
1700 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 00:00:00.000 |
FI_MGR |
12008 |
101 |
100 |
110 |
Buchhaltung |
205 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
108 |
100 |
110 |
Buchhaltung |
205 |
1700 |
Snowflake¶
Ergebnis¶
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 |
Buchhaltung |
205 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
90 |
110 |
Buchhaltung |
205 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
90 |
110 |
Buchhaltung |
205 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 |
IT_PROG |
9000.00 |
102 |
60 |
110 |
Buchhaltung |
205 |
1700 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
103 |
60 |
110 |
Buchhaltung |
205 |
1700 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
103 |
60 |
110 |
Buchhaltung |
205 |
1700 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
103 |
60 |
110 |
Buchhaltung |
205 |
1700 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
103 |
60 |
110 |
Buchhaltung |
205 |
1700 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 |
FI_MGR |
12008.00 |
101 |
100 |
110 |
Buchhaltung |
205 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
108 |
100 |
110 |
Buchhaltung |
205 |
1700 |
Natural Inner Join¶
Oracle¶
Ergebnis¶
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 |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
Executive |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
Executive |
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 |
Finanzen |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 00:00:00.000 |
FI_ACCOUNT |
8200 |
Finanzen |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 00:00:00.000 |
FI_ACCOUNT |
7700 |
Finanzen |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 00:00:00.000 |
FI_ACCOUNT |
7800 |
Finanzen |
1700 |
Snowflake¶
Ergebnis¶
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 |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
Executive |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
Executive |
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 |
Finanzen |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 |
FI_ACCOUNT |
8200.00 |
Finanzen |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 |
FI_ACCOUNT |
7700.00 |
Finanzen |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 |
FI_ACCOUNT |
7800.00 |
Finanzen |
1700 |
Cross Natural Join¶
Oracle¶
Ergebnis¶
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 |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
Executive |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
Executive |
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 |
Finanzen |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 00:00:00.000 |
FI_ACCOUNT |
8200 |
Finanzen |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 00:00:00.000 |
FI_ACCOUNT |
7700 |
Finanzen |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 00:00:00.000 |
FI_ACCOUNT |
7800 |
Finanzen |
1700 |
Snowflake¶
Ergebnis¶
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 |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
Executive |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
Executive |
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 |
Finanzen |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 |
FI_ACCOUNT |
8200.00 |
Finanzen |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 |
FI_ACCOUNT |
7700.00 |
Finanzen |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 |
FI_ACCOUNT |
7800.00 |
Finanzen |
1700 |
Natural Cross Join¶
Oracle¶
Ergebnis¶
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 |
Finanzen |
108 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
90 |
Executive |
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 |
Public Relations |
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 |
Versand |
121 |
1500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
40 |
Human Resources |
203 |
2400 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
30 |
Purchasing |
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¶
Ergebnis¶
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 |
Public Relations |
204 |
2700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
90 |
Executive |
100 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
30 |
Purchasing |
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 |
Finanzen |
108 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
50 |
Versand |
121 |
1500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
40 |
Human Resources |
203 |
2400 |
Bekannte Probleme¶
1. Results ordering mismatch between languages¶
Das Ergebnis der Abfrage hat in beiden Datenbank-Engines den gleichen Inhalt, aber die Reihenfolge kann unterschiedlich sein, wenn in der Abfrage keine ORDER BY-Klausel definiert ist.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
Äußerer Verknüpfung (Outer Join)¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Ein Outer Join erweitert das Ergebnis einer einfachen Verknüpfung. Ein Outer Join gibt alle Zeilen zurück, die die Join-Bedingung erfüllen und gibt einige oder alle Zeilen aus einer Tabelle zurück, für die keine Zeilen aus der anderen Tabelle die Join-Bedingung erfüllen. (Oracle SQL Language Reference Outer Joins Subsection).
Oracle ANSI-Syntax¶
Oracle unterstützt auch den (+)-Operator, der für Outer Joins verwendet werden kann. Dieser Operator wird in der WHERE-Klausel zu einem Spaltenausdruck hinzugefügt.
Snowflake ANSI-Syntax¶
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.
Die Snowflake-Grammatik ist eine der folgenden:
Beispielhafte Quellcode-Muster¶
Bemerkung
ORDER BY-Klausel hinzugefügt, da die Reihenfolge der Ergebnisse zwischen Oracle und Snowflake variieren kann.
Bemerkung
Da die Ergebnismenge zu groß ist, wurde die Zeilenbegrenzungsklausel hinzugefügt. Sie können es entfernen, um das gesamte Resultset abzurufen.
Bemerkung
Prüfen Sie diesen Abschnitt SnowConvert AI – Oracle – Beispieldaten, um die Beispieldatenbank einzurichten.
Bemerkung
Für die folgenden Beispiele wurden diese Einfügungen und ALTER-Anweisungen ausgeführt, um das Ergebnis für jede Art von JOIN besser unterscheiden zu können:
1. ANSI syntax¶
Snowflake unterstützt die ANSI-Syntax für SQL JOINS vollständig. Die Verhaltensweise ist für beide Datenbank-Engines identisch.
Linker Outer Join in¶
Oracle¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Unbekanntes Land |
0 |
||
AR |
Argentinien |
2 |
2 |
Amerika |
AU |
Australien |
3 |
3 |
Asien |
BE |
Belgien |
1 |
1 |
Europa |
BR |
Brasilien |
2 |
2 |
Amerika |
CA |
Kanada |
2 |
2 |
Amerika |
CH |
Schweiz |
1 |
1 |
Europa |
CN |
China |
3 |
3 |
Asien |
DE |
Deutschland |
1 |
1 |
Europa |
DK |
Dänemark |
1 |
1 |
Europa |
Snowflake¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Unbekanntes Land |
0.0000000000000000000 |
||
AR |
Argentinien |
2.0000000000000000000 |
2.0000000000000000000 |
Amerika |
AU |
Australien |
3.0000000000000000000 |
3.0000000000000000000 |
Asien |
BE |
Belgien |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
BR |
Brasilien |
2.0000000000000000000 |
2.0000000000000000000 |
Amerika |
CA |
Kanada |
2.0000000000000000000 |
2.0000000000000000000 |
Amerika |
CH |
Schweiz |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
CN |
China |
3.0000000000000000000 |
3.0000000000000000000 |
Asien |
DE |
Deutschland |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
DK |
Dänemark |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
Rechter Outer Join in¶
Oracle¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5 |
Ozeanien |
||
ZW |
Simbabwe |
4 |
4 |
Naher Osten und Afrika |
ZM |
Sambia |
4 |
4 |
Naher Osten und Afrika |
US |
Vereinigte Staaten von Amerika |
2 |
2 |
Amerika |
UK |
Großbritannien |
1 |
1 |
Europa |
SG |
Singapur |
3 |
3 |
Asien |
NL |
Niederlande |
1 |
1 |
Europa |
NG |
Nigeria |
4 |
4 |
Naher Osten und Afrika |
MX |
Mexiko |
2 |
2 |
Amerika |
ML |
Malaysia |
3 |
3 |
Asien |
Snowflake¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5.0000000000000000000 |
Ozeanien |
||
ZW |
Simbabwe |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
ZM |
Sambia |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
US |
Vereinigte Staaten von Amerika |
2.0000000000000000000 |
2.0000000000000000000 |
Amerika |
UK |
Großbritannien |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
SG |
Singapur |
3.0000000000000000000 |
3.0000000000000000000 |
Asien |
NL |
Niederlande |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
NG |
Nigeria |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
MX |
Mexiko |
2.0000000000000000000 |
2.0000000000000000000 |
Amerika |
ML |
Malaysia |
3.0000000000000000000 |
3.0000000000000000000 |
Asien |
Vollständiger Outer Join in¶
Oracle¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Unbekanntes Land |
0 |
||
– |
5 |
Ozeanien |
||
EG |
Ägypten |
4 |
4 |
Naher Osten und Afrika |
IL |
Israel |
4 |
4 |
Naher Osten und Afrika |
KW |
Kuwait |
4 |
4 |
Naher Osten und Afrika |
NG |
Nigeria |
4 |
4 |
Naher Osten und Afrika |
ZM |
Sambia |
4 |
4 |
Naher Osten und Afrika |
ZW |
Simbabwe |
4 |
4 |
Naher Osten und Afrika |
BE |
Belgien |
1 |
1 |
Europa |
CH |
Schweiz |
1 |
1 |
Europa |
Snowflake¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Unbekanntes Land |
0.0000000000000000000 |
||
– |
5.0000000000000000000 |
Ozeanien |
||
EG |
Ägypten |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
IL |
Israel |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
KW |
Kuwait |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
NG |
Nigeria |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
ZM |
Sambia |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
ZW |
Simbabwe |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
BE |
Belgien |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
CH |
Schweiz |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
2. Natural Outer Join¶
Sowohl Oracle als auch Snowflake unterstützen den Natural Outer Join und sie verhalten sich gleich.
Ein NATURALJOIN ist identisch mit einem expliziten JOIN für die gemeinsamen Spalten der beiden Tabellen, mit der Ausnahme, dass die gemeinsamen Spalten nur einmal in der Ausgabe enthalten sind. (Eine natürliche Verknüpfung (Natural Join) geht davon aus, dass Spalten mit demselben Namen, aber in verschiedenen Tabellen, entsprechende Daten enthalten.) (Snowflake SQL-Referenz: JOIN)
Natürliche linke äußere Verknüpfung (Natural Left Outer Join)¶
Oracle¶
Ergebnis¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0 |
– |
Unbekanntes Land |
|
2 |
AR |
Argentinien |
Amerika |
3 |
AU |
Australien |
Asien |
1 |
BE |
Belgien |
Europa |
2 |
BR |
Brasilien |
Amerika |
2 |
CA |
Kanada |
Amerika |
1 |
CH |
Schweiz |
Europa |
3 |
CN |
China |
Asien |
1 |
DE |
Deutschland |
Europa |
1 |
DK |
Dänemark |
Europa |
Snowflake¶
Ergebnis¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0.0000000000000000000 |
– |
Unbekanntes Land |
|
2.0000000000000000000 |
AR |
Argentinien |
Amerika |
3.0000000000000000000 |
AU |
Australien |
Asien |
1.0000000000000000000 |
BE |
Belgien |
Europa |
2.0000000000000000000 |
BR |
Brasilien |
Amerika |
2.0000000000000000000 |
CA |
Kanada |
Amerika |
1.0000000000000000000 |
CH |
Schweiz |
Europa |
3.0000000000000000000 |
CN |
China |
Asien |
1.0000000000000000000 |
DE |
Deutschland |
Europa |
1.0000000000000000000 |
DK |
Dänemark |
Europa |
Natürliche rechte äußere Verknüpfung (Natural Right Outer Join)¶
Oracle¶
Ergebnis¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
5 |
Ozeanien |
||
4 |
ZW |
Simbabwe |
Naher Osten und Afrika |
4 |
ZM |
Sambia |
Naher Osten und Afrika |
2 |
US |
Vereinigte Staaten von Amerika |
Amerika |
1 |
UK |
Großbritannien |
Europa |
3 |
SG |
Singapur |
Asien |
1 |
NL |
Niederlande |
Europa |
4 |
NG |
Nigeria |
Naher Osten und Afrika |
2 |
MX |
Mexiko |
Amerika |
3 |
ML |
Malaysia |
Asien |
Snowflake¶
Ergebnis¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
5.0000000000000000000 |
Ozeanien |
||
4.0000000000000000000 |
ZW |
Simbabwe |
Naher Osten und Afrika |
4.0000000000000000000 |
ZM |
Sambia |
Naher Osten und Afrika |
2.0000000000000000000 |
US |
Vereinigte Staaten von Amerika |
Amerika |
1.0000000000000000000 |
UK |
Großbritannien |
Europa |
3.0000000000000000000 |
SG |
Singapur |
Asien |
1.0000000000000000000 |
NL |
Niederlande |
Europa |
4.0000000000000000000 |
NG |
Nigeria |
Naher Osten und Afrika |
2.0000000000000000000 |
MX |
Mexiko |
Amerika |
3.0000000000000000000 |
ML |
Malaysia |
Asien |
3. Basic Outer Join with USING¶
Tabellenspalten können mit dem Schlüsselwort USING verbunden werden. Die Ergebnisse sind die gleichen wie bei einem einfachen OUTER JOIN mit dem Schlüsselwort ON.
Linker äußere Verknüpfung mit¶
Oracle¶
Ergebnis¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0 |
– |
Unbekanntes Land |
|
2 |
AR |
Argentinien |
Amerika |
3 |
AU |
Australien |
Asien |
1 |
BE |
Belgien |
Europa |
2 |
BR |
Brasilien |
Amerika |
2 |
CA |
Kanada |
Amerika |
1 |
CH |
Schweiz |
Europa |
3 |
CN |
China |
Asien |
1 |
DE |
Deutschland |
Europa |
1 |
DK |
Dänemark |
Europa |
Snowflake¶
Ergebnis¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0.0000000000000000000 |
– |
Unbekanntes Land |
|
2.0000000000000000000 |
AR |
Argentinien |
Amerika |
3.0000000000000000000 |
AU |
Australien |
Asien |
1.0000000000000000000 |
BE |
Belgien |
Europa |
2.0000000000000000000 |
BR |
Brasilien |
Amerika |
2.0000000000000000000 |
CA |
Kanada |
Amerika |
1.0000000000000000000 |
CH |
Schweiz |
Europa |
3.0000000000000000000 |
CN |
China |
Asien |
1.0000000000000000000 |
DE |
Deutschland |
Europa |
1.0000000000000000000 |
DK |
Dänemark |
Europa |
4. (+) Operator¶
Oracle und Snowflake haben einen (+)-Operator, der auch für äußere Verknüpfungen verwendet werden kann. In manchen Fällen kann Snowflake bei Verwendung dieses Operators nicht richtig funktionieren.
Weitere Informationen zu diesem Anbieter in Snowflake finden Sie hier.
Linke äußere Verknüpfung mit (+) Operator¶
Oracle¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Unbekanntes Land |
0 |
||
AR |
Argentinien |
2 |
2 |
Amerika |
AU |
Australien |
3 |
3 |
Asien |
BE |
Belgien |
1 |
1 |
Europa |
BR |
Brasilien |
2 |
2 |
Amerika |
CA |
Kanada |
2 |
2 |
Amerika |
CH |
Schweiz |
1 |
1 |
Europa |
CN |
China |
3 |
3 |
Asien |
DE |
Deutschland |
1 |
1 |
Europa |
DK |
Dänemark |
1 |
1 |
Europa |
Snowflake¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
Unbekanntes Land |
0.0000000000000000000 |
||
AR |
Argentinien |
2.0000000000000000000 |
2.0000000000000000000 |
Amerika |
AU |
Australien |
3.0000000000000000000 |
3.0000000000000000000 |
Asien |
BE |
Belgien |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
BR |
Brasilien |
2.0000000000000000000 |
2.0000000000000000000 |
Amerika |
CA |
Kanada |
2.0000000000000000000 |
2.0000000000000000000 |
Amerika |
CH |
Schweiz |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
CN |
China |
3.0000000000000000000 |
3.0000000000000000000 |
Asien |
DE |
Deutschland |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
DK |
Dänemark |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
Rechte äußere Verknüpfung mit (+) Operator¶
Oracle¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5 |
Ozeanien |
||
ZW |
Simbabwe |
4 |
4 |
Naher Osten und Afrika |
ZM |
Sambia |
4 |
4 |
Naher Osten und Afrika |
US |
Vereinigte Staaten von Amerika |
2 |
2 |
Amerika |
UK |
Großbritannien |
1 |
1 |
Europa |
SG |
Singapur |
3 |
3 |
Asien |
NL |
Niederlande |
1 |
1 |
Europa |
NG |
Nigeria |
4 |
4 |
Naher Osten und Afrika |
MX |
Mexiko |
2 |
2 |
Amerika |
ML |
Malaysia |
3 |
3 |
Asien |
Snowflake¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5.0000000000000000000 |
Ozeanien |
||
ZW |
Simbabwe |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
ZM |
Sambia |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
US |
Vereinigte Staaten von Amerika |
2.0000000000000000000 |
2.0000000000000000000 |
Amerika |
UK |
Großbritannien |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
SG |
Singapur |
3.0000000000000000000 |
3.0000000000000000000 |
Asien |
NL |
Niederlande |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
NG |
Nigeria |
4.0000000000000000000 |
4.0000000000000000000 |
Naher Osten und Afrika |
MX |
Mexiko |
2.0000000000000000000 |
2.0000000000000000000 |
Amerika |
ML |
Malaysia |
3.0000000000000000000 |
3.0000000000000000000 |
Asien |
Einzelne Tabelle verbunden mit mehreren Tabellen mit (+)¶
In Oracle können Sie mit dem Operator (+) eine einzelne Tabelle mit mehreren Tabellen verbinden. Snowflake unterstützt dies jedoch nicht. Abfragen mit dieser Art von äußeren Verknüpfungen werden in die ANSI-Syntax geändert.
Oracle¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
|---|---|---|---|---|---|---|---|
1 |
Europa |
2000 |
40-5-12 Laogianggen |
190518 |
Beijing |
||
CH |
Schweiz |
1 |
Europa |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
1 |
Europa |
2100 |
1298 Vileparle (E) |
490231 |
Mumbai |
||
CH |
Schweiz |
1 |
Europa |
2900 |
20 Rue des Corps-Saints |
1730 |
Genf |
1 |
Europa |
1300 |
9450 Kamiya-cho |
6823 |
Hiroshima |
||
UK |
Großbritannien |
1 |
Europa |
2400 |
8204 Arthur St |
London |
|
1 |
Europa |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexiko-Stadt |
||
DE |
Deutschland |
1 |
Europa |
2700 |
Schwanthalerstr. 7031 |
80925 |
München |
UK |
Großbritannien |
1 |
Europa |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9-9ZB |
Oxford |
IT |
Italien |
1 |
Europa |
1000 |
1297 Via Cola di Rie |
00989 |
Rom |
Snowflake¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
|---|---|---|---|---|---|---|---|
1.0000000000000000000 |
Europa |
2000 |
40-5-12 Laogianggen |
190518 |
Beijing |
||
CH |
Schweiz |
1.0000000000000000000 |
Europa |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
1.0000000000000000000 |
Europa |
2100 |
1298 Vileparle (E) |
490231 |
Mumbai |
||
CH |
Schweiz |
1.0000000000000000000 |
Europa |
2900 |
20 Rue des Corps-Saints |
1730 |
Genf |
1.0000000000000000000 |
Europa |
1300 |
9450 Kamiya-cho |
6823 |
Hiroshima |
||
UK |
Großbritannien |
1.0000000000000000000 |
Europa |
2400 |
8204 Arthur St |
London |
|
1.0000000000000000000 |
Europa |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexiko-Stadt |
||
DE |
Deutschland |
1.0000000000000000000 |
Europa |
2700 |
Schwanthalerstr. 7031 |
80925 |
München |
UK |
Großbritannien |
1.0000000000000000000 |
Europa |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9-9ZB |
Oxford |
IT |
Italien |
1.0000000000000000000 |
Europa |
1000 |
1297 Via Cola di Rie |
00989 |
Rom |
Verwendung des (+)-Operators mit einer Spalte aus einer nicht verknüpften Tabelle und einem Nicht-Spaltenwert¶
In Oracle können Sie den Operator (+) mit einer Spalte verwenden und diese mit einem Wert verknüpfen, der keine Spalte aus einer anderen Tabelle ist. Snowflake kann dies auch tun, aber es schlägt fehl, wenn die Tabelle der Spalte nicht mit einer anderen Tabelle verbunden wurde. Um dieses Problem zu lösen, wird der (+)-Operator aus der Abfrage entfernt, wenn dieses Szenario eintritt, und das Ergebnis ist dasselbe wie in Oracle.
Oracle¶
Ergebnis¶
REGION_ID |
REGION_NAME |
|---|---|
2 |
Amerika |
3 |
Asien |
Snowflake¶
Ergebnis¶
REGION_ID |
REGION_NAME |
|---|---|
2.0000000000000000000 |
Amerika |
3.0000000000000000000 |
Asien |
Bekannte Probleme¶
Für alle nicht unterstützten Fälle sehen Sie bitte unter EWIs nach, um Empfehlungen und mögliche Umgehungen zu erhalten.
1. Converted Outer Joins to ANSI syntax might reorder the columns¶
Wenn eine Abfrage mit einer nicht-ANSI-konformen äußeren Verknüpfung in eine ANSI-konformen äußere Verknüpfung konvertiert wird, kann sich die Reihenfolge der Spalten in der konvertierten Abfrage ändern. Um dieses Problem zu beheben, versuchen Sie, die Spalten in der gewünschten Reihenfolge auszuwählen.
Oracle¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1 |
Europa |
2000 |
40-5-12 Laogianggen |
190518 |
Beijing |
CN |
||||
CH |
Schweiz |
1 |
1 |
Europa |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
BE |
CH |
1 |
Europa |
2100 |
1298 Vileparle (E) |
490231 |
Mumbai |
Maharashtra |
IN |
|||
CH |
Schweiz |
1 |
1 |
Europa |
2900 |
20 Rue des Corps-Saints |
1730 |
Genf |
Genf |
CH |
1 |
Europa |
1300 |
9450 Kamiya-cho |
6823 |
Hiroshima |
JP |
||||
UK |
Großbritannien |
1 |
1 |
Europa |
2400 |
8204 Arthur St |
London |
UK |
||
1 |
Europa |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexiko-Stadt |
Distrito Federal, |
MX |
|||
DE |
Deutschland |
1 |
1 |
Europa |
2700 |
Schwanthalerstr. 7031 |
80925 |
München |
Bayern |
DE |
UK |
Großbritannien |
1 |
1 |
Europa |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9-9ZB |
Oxford |
Oxford |
UK |
IT |
Italien |
1 |
1 |
Europa |
1000 |
1297 Via Cola di Rie |
00989 |
Rom |
IT |
Snowflake¶
Ergebnis¶
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1.0000000000000000000 |
Europa |
2000 |
40-5-12 Laogianggen |
190518 |
Beijing |
CN |
||||
1.0000000000000000000 |
Europa |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
BE |
CH |
CH |
Schweiz |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
2100 |
1298 Vileparle (E) |
490231 |
Mumbai |
Maharashtra |
IN |
|||
1.0000000000000000000 |
Europa |
2900 |
20 Rue des Corps-Saints |
1730 |
Genf |
Genf |
CH |
CH |
Schweiz |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
1300 |
9450 Kamiya-cho |
6823 |
Hiroshima |
JP |
||||
1.0000000000000000000 |
Europa |
2400 |
8204 Arthur St |
London |
UK |
UK |
Großbritannien |
1.0000000000000000000 |
||
1.0000000000000000000 |
Europa |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexiko-Stadt |
Distrito Federal, |
MX |
|||
1.0000000000000000000 |
Europa |
2700 |
Schwanthalerstr. 7031 |
80925 |
München |
Bayern |
DE |
DE |
Deutschland |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9-9ZB |
Oxford |
Oxford |
UK |
UK |
Großbritannien |
1.0000000000000000000 |
1.0000000000000000000 |
Europa |
1000 |
1297 Via Cola di Rie |
00989 |
Rom |
IT |
IT |
Italien |
1.0000000000000000000 |
2. Outer joined between predicate with an interval with multiple tables¶
Between-Prädikate können für nicht-ANSI OUTER JOINS verwendet werden. In Oracle können Spalten innerhalb des Intervalls mit einer äußeren Verknüpfung werden, auch wenn sie aus verschiedenen Tabellen stammen. Snowflake unterstützt dies jedoch nicht. In diesen Fällen wird das Prädikat BETWEEN auskommentiert.
Oracle¶
Ergebnis¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1 |
Europa |
2000 |
40-5-12 Laogianggen |
190518 |
Beijing |
CN |
||||
1 |
Europa |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
BE |
CH |
|||
1 |
Europa |
2100 |
1298 Vileparle (E) |
490231 |
Mumbai |
Maharashtra |
IN |
|||
1 |
Europa |
2900 |
20 Rue des Corps-Saints |
1730 |
Genf |
Genf |
CH |
|||
1 |
Europa |
1300 |
9450 Kamiya-cho |
6823 |
Hiroshima |
JP |
||||
1 |
Europa |
2400 |
8204 Arthur St |
London |
UK |
|||||
1 |
Europa |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexiko-Stadt |
Distrito Federal, |
MX |
|||
1 |
Europa |
2700 |
Schwanthalerstr. 7031 |
80925 |
München |
Bayern |
DE |
|||
1 |
Europa |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9-9ZB |
Oxford |
Oxford |
UK |
|||
1 |
Europa |
1000 |
1297 Via Cola di Rie |
00989 |
Rom |
IT |
Snowflake¶
Zugehörige EWIs¶
SSC-EWI-OR0090: Nicht-ANSI Outer Join hat ein ungültiges Between-Prädikat.
Selbstverknüpfung (Self Join)¶
Bemerkung
Einige Teile in den Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Ein Self-Join ist eine Verknüpfung einer Tabelle mit sich selbst. Diese Tabelle erscheint zweimal in der
FROM-Klausel und wird von Tabellenaliasen gefolgt, die Spaltennamen in der Join-Bedingung qualifizieren. (Oracle SQL Language Reference Self Join Subsection)
Beispielhafte Quellcode-Muster¶
Bemerkung
ORDER BY-Klausel hinzugefügt, da die Reihenfolge der Ergebnisse zwischen Oracle und Snowflake variieren kann.
Bemerkung
Prüfen Sie diesen Abschnitt SnowConvert AI – Oracle – Beispieldaten, um die Beispieldatenbank einzurichten.
Grundlegender Self-Join-Fall¶
Oracle¶
Ergebnis¶
Mitarbeiter und ihre Vorgesetzten |
|---|
Rajs arbeitet für Mourgos |
Raphaely arbeitet für King |
Rogers arbeitet für Kaufling |
Russell arbeitet für King |
Snowflake¶
Ergebnis¶
Mitarbeiter und ihre Vorgesetzten |
|---|
Rajs arbeitet für Mourgos |
Raphaely arbeitet für King |
Rogers arbeitet für Kaufling |
Russell arbeitet für King |
Bemerkung
Wie bereits bewiesen, ist die Selbstverknüpfung (Self Join) in Oracle funktional gleichwertig mit Snowflake.
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
Semijoin¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Ein Semijoin gibt Zeilen zurück, die einer
EXISTSUnterabfrage entsprechen, ohne Zeilen von der linken Seite des Prädikats zu duplizieren, wenn mehrere Zeilen auf der rechten Seite die Kriterien der Unterabfrage erfüllen. Die Semijoin-Transformation kann nicht durchgeführt werden, wenn sich die Unterabfrage auf einemOR-Zweig derWHERE-Klausel befindet. (Oracle SQL Language Reference Semijoin Subsection)
Beispielhafte Quellcode-Muster¶
Bemerkung
ORDER BY-Klausel hinzugefügt, da die Reihenfolge der Ergebnisse zwischen Oracle und Snowflake variieren kann.
Bemerkung
Prüfen Sie diesen Abschnitt SnowConvert AI – Oracle – Beispieldaten, um die Beispieldatenbank einzurichten.
Grundlegender Semijoin-Fall¶
Oracle¶
Ergebnis¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|---|---|---|---|
110 |
Buchhaltung |
205 |
1700 |
10 |
Administration |
200 |
1700 |
90 |
Executive |
100 |
1700 |
100 |
Finanzen |
108 |
1700 |
40 |
Human Resources |
203 |
2400 |
60 |
IT |
103 |
1400 |
20 |
Marketing |
201 |
1800 |
70 |
Public Relations |
204 |
2700 |
30 |
Purchasing |
114 |
1700 |
80 |
Sales |
145 |
2500 |
50 |
Versand |
121 |
1500 |
Snowflake¶
Ergebnis¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|---|---|---|---|
110 |
Buchhaltung |
205 |
1700 |
10 |
Administration |
200 |
1700 |
90 |
Executive |
100 |
1700 |
100 |
Finanzen |
108 |
1700 |
40 |
Human Resources |
203 |
2400 |
60 |
IT |
103 |
1400 |
20 |
Marketing |
201 |
1800 |
70 |
Public Relations |
204 |
2700 |
30 |
Purchasing |
114 |
1700 |
80 |
Sales |
145 |
2500 |
50 |
Versand |
121 |
1500 |
Bemerkung
Wie bereits bewiesen, ist der Semijoin in Oracle funktional äquivalent zu Snowflake.
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
Keine zugehörigen EWIs.