MySQL: bei leerem Wert in Spalte Ersatzwert eintragen - wie?

Kryptaesthesie

Erfahrenes Mitglied
PostgreSQL: bei leerem Wert in Spalte Ersatzwert eintragen - wie?

Guten Morgen :)

Ich bin sicher, dass meine Frage schon mal gestellt wurde, aber die Suche danach hat mich nicht zum Ziel geführt. Vll die falschen Suchbegriffe...?

Ich habe folgendes Problem.
Meine Abfrag sieht so aus:
Code:
SELECT modell_id, bandsysteme_live FROM modelle
Als Rückgabewert habe ich folgendes:
Code:
 modell_id     bandsysteme_live    
 ------------  ------------------- 
 1                                 
 2                                 
 3                                 
 4                                 
 5
Zu sehen ist, dass die Spalte bandsysteme_live leere Werte enthält.
Jetzt möchte ich aber, dass in so einem Fall der Wert 0 angezeigt wird.
Wie kann ich das realisieren?

Vielen Dank schon mal! :)
MfG Gerrit
 
Zuletzt bearbeitet:
Welchen Typs ist „bandsysteme_live“ denn und welche Werte werden derzeit zurückgegeben?
 
Code:
SELECT modell_id, IF(bandsysteme_live!="", bandsysteme_live, 0) FROM modelle
 
BERICHTIGUNG: es handelt sich um PostgresSQL
Sorry, für die Verwirrung!


bekomme folgende Fehler...

Code:
SELECT modell_id, IF(bandsysteme_live != "", bandsysteme_live, 0) FROM modelle
--> ERROR: zero-length delimited identifier at or near """"

Code:
SELECT modell_id, IF(bandsysteme_live != '', bandsysteme_live, 0) FROM modelle
--> ERROR: function if(boolean, character varying, integer) does not exist

Code:
SELECT modell_id, IF(bandsysteme_live != '', bandsysteme_live, '0') FROM modelle
--> ERROR: function if(boolean, character varying, "unknown") does not exist
 
Nun dann:
Code:
SELECT modell_id, CASE WHEN bandsysteme_live!="" THEN bandsysteme_live ELSE 0 END FROM modelle
 
Hi,

Werte '0' prüft man:
PHP:
SELECT .... case when attribute = '0' then 'mach was' else 'schön' end as "filter"

aber
Werte NULL prüft man:
PHP:
SELECT .... case when attribute IS NULL then 'mach was' else 'schön' end as "filter"

so wie du das beschreibst must du auf NULL abprüfen, oder verstehe ich was falsch?

Grüße
 
Alternativ kannst du natürlich auch in der DB Struktur den Standard auf 0 stellen. Da liegt dann der Arbeitsaufwand bei ca. 5 Sekunden ;)

Aber die If-Abfrage im Statement ist eine schöne Sache (!)
 
Ich habe mich für die folgende Variante entschieden:
Code:
SELECT modell_id, CASE WHEN bandsysteme_live IS NULL OR bandsysteme_live = '' THEN '0' ELSE bandsysteme_live END FROM modelle
So stelle ich sicher, dass sowohl NULL als auch ein Leerstring abgefangen und durch 0 ersetzt werden.

Danke für eure Hilfe! :)
 

Neue Beiträge

Zurück