SQL Statement um die leeren Felder durch eine 0 zu ersetzen
Hallo Leute,
ich suche ein SQL Statement mit dem ich ein Select auf eine Tabelle mache und leere Felder durch eine 0 ersetze. Das Statement wird später über eine Shell ausgführt.
Beispiel:
Tabelle Musikstuecke
Titel | Interpret | Dauer 1 | Test | leer leer | leer | 4
Nun möchte ich mein bisheriges Statement erweitern, dass die leeren Felder mit einer 0 ausgelesen werden:
Select Titel from Musikstuecke Where ...
Ich hoffe mir kann jemand helfen...
1 Antwort
Wenn deine "leeren" Felder den SQL-Wert NULL enthalten (so wie man das normalerweise für leere Felder macht), dann geht das so:
SELECT Titel, COALESCE(Feldname, 0) FROM Musikstuecke
Diese Anweisung liefert (nach dem Titel) den Inhalt von "Feldname", soferne dieser nicht NULL ist. Ist er hingegen NULL, dann liefert die Anweisung 0.
Statt "Feldname" musst du natürlich die von dir gewünschte Spalte eintragen.
Ja, das geht auch. NVL hat für deinen Zweck (also bei 2 Argumenten) genau dieselbe Syntax wie COALESCE.
Allerdings gibt's NVL nur bei Oracle, wohingegen COALESCE dem SQL-Standard entspricht und von den meisten Datanbanksystemen unterstützt wird (inkl. Oracle).
Danke dir. Weißt du ob sowas auch mit der NVL Funktion möglich ist? Kannst du hier auch ein Syntax-Beispiel geben?