Hier ist ein Auszug aus meinem Tisch:PostgreSQL CASE ... END mit mehreren Bedingungen
gid | datepose | pvc
---------+----------------+------------
1 | 1961 | 01
2 | 1949 |
3 | 1990 | 02
1 | 1981 |
1 | | 03
1 | |
ich die PVC-Spalte ein SELECT CASE
als Gebrüll füllen wollen:
SELECT
gid,
CASE
WHEN (pvc IS NULL OR pvc = '') AND datpose < 1980) THEN '01'
WHEN (pvc IS NULL OR pvc = '') AND datpose >= 1980) THEN '02'
WHEN (pvc IS NULL OR pvc = '') AND (datpose IS NULL OR datpose = 0) THEN '03'
END AS pvc
FROM my_table ;
Das Ergebnis ist der gleiche Inhalt wie die Quellentabelle, nichts ist passiert und ich bekomme keine Fehlermeldung in pg_log Dateien. Es könnte sich um einen Syntaxfehler oder ein Problem bei der Verwendung mehrerer Bedingungen in WHEN-Klauseln handeln.
Vielen Dank für Hilfe und Beratung!
Können Sie einen NULL-Wert anzuzeigen, in dem es null ist (so können wir den Unterschied zwischen NULL und leere Zeichenkette sehen)? Wie in, ein String mit 'NULL' zum Beispiel – Paco
Sie haben auch ein Problem mit Klammern. Warum gibt es eine schließende Klammer nach 1980? (an beiden Orten) – Paco