-
Konversion von NULL-Werten in SQL-leftJOIN bei deim schreiben
Hallo Läute brauche eure Hilfe!
zum Verknüpfen zweier Tabellen miteinander verwende ich left-join funktion (implementiertem SQL im Cobol). Dabei enstehen Felder die mit NULL-Werten gefült sind, beim Fetch´en gibt mir der Compiler endsprechend die Meldung, er könne "leeren" Felder nicht ab...
so jetzt frage ich mich ob man innerhalb des Cursors oder gleich in der Select-Anweisung sagen kann, dass wenn die Felder "leer" sind soll er die mit Nullen füllen...oder per Update oder sonst irgendwie Konversieren...
für ein Tip wäre ich euch sehr dankbar
bye
-
Hallo,
Zum einen gibt skalare SQL-Funktionen wie IFNULL und COALESCE mit denen man NULL-Werte ausschliessen kann.
Zum anderen Du kannst in deinen Where-Bedingungen auf NULL abfragen:
Select ...
Where Feld1 IS NULL and Feld2 IS NOT NULL
Birgitta
-
Hallo Birgitta
<<Zum einen gibt skalare SQL-Funktionen wie IFNULL und COALESCE mit denen man NULL-Werte ausschliessen kann.
Zum anderen Du kannst in deinen Where-Bedingungen auf NULL abfragen:
Select ...
Where Feld1 IS NULL and Feld2 IS NOT NULL>>
dass ist ja auch das Problem, dass die Felder der beiden Tabellen keine NULL-Werte enthalten, soder die enstehen erst ducht die RightJoin Anweisung, also kann ich keinen Feld direct abfragen sondern (ich benuze einen cursor) muss die Möglichkeit haben auf den Cursor zugreifen um die darin enthaltende Null-Säte zu lokalisieren...
so siehts aus:
DECLARE C1 SCROLL CURSOR FOR
SELECT A.MLFILE,
A.MLLIB,
A.MLSIZE
B.mlsize
FROM d9980p00 A
left join
d9980p10 B
on
A.MLFILE = B.MLFILE and
A.MLLIB = B.MLLIB
......
-
Hi
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von Sigma:
Hallo Birgitta
<<Zum einen gibt skalare SQL-Funktionen wie IFNULL und COALESCE mit denen man NULL-Werte ausschliessen kann.
Zum anderen Du kannst in deinen Where-Bedingungen auf NULL abfragen:
Select ...
Where Feld1 IS NULL and Feld2 IS NOT NULL>>
dass ist ja auch das Problem, dass die Felder der beiden Tabellen keine NULL-Werte enthalten, soder die enstehen erst ducht die RightJoin Anweisung, also kann ich keinen Feld direct abfragen sondern (ich benuze einen cursor) muss die Möglichkeit haben auf den Cursor zugreifen um die darin enthaltende Null-Säte zu lokalisieren...
so siehts aus:
DECLARE C1 SCROLL CURSOR FOR
SELECT A.MLFILE,
A.MLLIB,
A.MLSIZE
COALESCE(B.mlsize, 0)
FROM d9980p00 A
left join
d9980p10 B
on
A.MLFILE = B.MLFILE and
A.MLLIB = B.MLLIB
......[/quote]
Dieter
-
danke an alle...
IFNULL(B.MLSIZE, 0)
=> heißt erst mal ausprobieren und dann merkern
-
Wie immer gibt es mehrere Möglichkeiten, jedoch die Funktionen COALESCE, IFNULL und auch VALUE täuschen darüber hinweg, dass tatsächlich KEIN Satz vorhanden ist und nicht vielleicht der Wert 0 (Null) ein korrekter in der Datei B ist.
Beim Fetch gibt man halt für dieses Feld einen Indicator an (MyInd PIC S9(4) COMP-4):
fetch ... :MyField :MyInd, ...
Der Indikator muss ohne Komma direkt hinter dem Feld angegeben werden.
Über die Indicatorabfrage kannst du dann feststellen:
0 = Satz vorhanden und Wert gültig
-1 = Satz vorhanden aber Wert ggf. gekürzt
-2 = NULL (Satz nicht vorhanden)
Similar Threads
-
By woki in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 31-10-06, 10:21
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
-
By Joe in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 23-12-05, 07:43
-
By muadeep in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 27-07-05, 15:17
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