Verwenden von COALESCE zum Verarbeiten von NULL-Werten in PostgreSQL
Ich habe die folgende Abfrage
SELECT DISTINCT
pt.incentive_marketing,
pt.incentive_channel,
pt.incentive_advertising
FROM test.pricing pt
WHERE pt.contract_id = 90000
group by 1,2,3
order by pt.incentive_marketing;
Die oben stehende Abfrage gibt die o/p wie im angehängten Bild
Möchte ich aber ersetzen, werden alle null-Werte durch 0 mit COALESCE
Bitte lassen Sie mich wissen, wie dies erreicht werden kann in der obigen SELECT-Abfrage
Ich jetzt weiter verändert, die Abfrage durch verschmelzen, wie unten
SELECT
COALESCE( pt.incentive_marketing, '0' ),
COALESCE(pt.incentive_channel,'0'),
COALESCE( pt.incentive_advertising,'0')
FROM test.pricing pt
WHERE pt.contract_id = 90000
group by 1,2,3
dem Ergebnis wie im Anhang Bild 2.
Ich bekomme noch immer eine Zeile mit leeren Werten
InformationsquelleAutor der Frage ronan | 2014-12-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
COALESCE
in Verbindung mitNULLIF
für eine kurze, effiziente Lösung:Die
NULLIF
- Funktion wird null zurückgeben, wenn yourField ist gleich der zweite Wert (''
in diesem Fall), wodurch dieCOALESCE
Funktion in vollem Umfang funktioniert auf alle Fälle:InformationsquelleAutor der Antwort Andrea Ligios
Wenn Sie
0
und eine leere Zeichenfolge''
undnull
zu benennen, undefined, du hast ein Daten-problem. Aktualisieren Sie einfach die Spalten und lösen Sie Ihr schema.Dadurch wird der Beitritt und die Auswahl wesentlich leichter voran.
InformationsquelleAutor der Antwort Evan Carroll