-
SQL FULL JOIN
Hallo Forumsteilnehmer,
ich möchte mit SQL 2 Dateien verbinden und dabei auch diejenigen Datensätze der Primärdatei in der Ergebnisliste haben, die nicht mit der Sekundärdatei verknüpfbar sind.
Ich habe daher versucht, auf einer AS400 (Rel. V5R3M0) den Befehl
select feld1, feld2 from FILEA FULL JOIN FILE2 ON feld1=feldx etc.
dafür zu verwenden.
Ich bekomme die Antwort "TOKEN FULL" ungültig.
Ist FULL JOIN auf der AS400 nicht unterstützt bzw. welche anderen (einfachen) Möglichkeiten gibt es dafür.
Ich danke euch für euer Infos.
-
Wie wäre es mit LEFT OUTER JOIN ?
Gruß,
KM
-
Danke für die Info,
ohne WHERE-Klausel funktionierts.
Wenn ich aber in der WHERE-Klausel eine Abfrage Feld Datei A <> Feld Datei B definiere, dann fallen die Datensätze wo die Verknüpfung wegen fehlender Sätze in Datei B nicht erfolgen kann, aus meiner Ergebnisliste heraus.
zb. Feld Datei A=100; kein verknüpfbarer Satz in Datei B; dann müsste dieser Datensatz doch in der Liste enthalten sein,oder?
Dh. SQL INNER LEFT JOIN reagiert anders als zB. bei QUERY, wenn ich die Verknüpfungs-Art "2" (mit Primärdatei gleiche Sätze) auswähle.
Ich danke im voraus.
-
Hallo,
bei Query/400 und Verknüpfung mit Primär-Datei gleich, werden für die nicht gefundenen Sätze in der zweiten Datei Default-Werte (z.B. 0 oder *Blanks) ausgegeben.
Bei Left Outer Join werden für die Felder in der zweiten Datei, die nicht verknüpft wurden NULL-Werte ausgegeben.
NULL-Werte sind Werte außerhalb des gültigen Bereichs und können deshalb nicht über die üblichen Vergleichsoperatoren (=, <>) abgefragt werden. Statt dessen muss IS NULL bzw. IS NOT NULL verwendet werden.
Wenn Du allerdings nur die Sätze ermitteln willst, für die es in der zweiten Seite kein Pendant gibt, würde ich über EXCEPTION JOIN (entspricht mit Primärdatei ungleich in Query/400) verknüpfen.
Birgitta
-
Besten Dank, Brigitta.
Die Erklärung mit den NULL-Inhalten hat es mir verständlich gemacht.
Für meine Auswertung brauche ich zwar eine Abfrage, aber ich werd schon was finden.
Danke und einen schönen Tag noch
-
Du musst dann z.B. folgendes abfragen:
a.feld=100 and b.feld is null
Sobald du aus Datei B einen festen Wert abfragst, generierst du automatisch einen Inner Join.
Wenn du also sowohl als auch benötigst gibts nur folgendes:
a.feld=100 and (b.feld is null or a.feld<>b.feld)
-
Hallo,
coalesce ist dein Freund
select coalesce(irgendEinNumerischesFeld, 0), coalesce(irgendEinAlfaFeld, " ") ...
from ... left outer join ...
sollte es tun, wenn du die coalesce Funktion (liefert den ersten Wert aus der Liste, der nicht null ist) um alle Felder der zweiten Datei drumherum baust.
mfg
Dieter Bender
Zitat von fpxx
Besten Dank, Brigitta.
Die Erklärung mit den NULL-Inhalten hat es mir verständlich gemacht.
Für meine Auswertung brauche ich zwar eine Abfrage, aber ich werd schon was finden.
Danke und einen schönen Tag noch
-
@Dieter
Dann musst du allerdings auch die Where-Klausel ergänzen:
where ... coalesce(...) = Wert ...
sonst klappt das wieder nicht.
-
Hallo,
normalerweise würde ich das im View Layer, oder als common table expression oder als geschachtelte Hugo Abfrage machen:
create view ddd as select ...
oder with a as (select ...)
select * from a where ...
oder select * from (select ...) hugo where ...
mfg
Dieter Bender
Zitat von Fuerchau
@Dieter
Dann musst du allerdings auch die Where-Klausel ergänzen:
where ... coalesce(...) = Wert ...
sonst klappt das wieder nicht.
Similar Threads
-
By Robi in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 22-06-07, 15:52
-
By ahingerl in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 08-12-06, 08:28
-
By cassi in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 22-11-06, 15:03
-
By steven_r in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 19-10-06, 07:56
-
By Xanas in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 23-02-06, 10:41
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks