NULL durch Text ersetzen

Hallo zusammen,

nach diversen JOINs habe ich nun als Ergebnis eine Tabelle mit 2 Spalten mit den Attributen:

Name(varchar) und PersonenNummer(Integer oder null).

Jetzt möchte ich die Spalte “PersonenNummer”, in der entweder Integer Zahlen oder Nullwerte vorhanden sind, durch eine andere Spalte ersetzen. Die Spalte Name soll erhalten bleiben.

Diese andere Spalte soll entweder den Wert “Bestanden” haben, wenn in der Spalte Personennummer eine Zahl steht, oder “nicht bestanden” wenn in PersonenNummer eine Null stand.

Josef - (null)
Peter - 12
Harry - 7
Lars - (null)

sollte verwandelt werden in:

Josef - nicht Bestanden
Peter - Bestanden
Harry - Bestanden
Lars - nicht Bestanden

Das ganze soll möglichst ohne eine extra-Tabelle für die (Bestanden/nicht Bestanden) Werte geschenen.

LG

Frank

kurz und schmerzfrei:


test=# create table foo (name text, val int);
CREATE TABLE
test=*# insert into foo values ('ich', NULL);
INSERT 0 1
test=*# insert into foo values ('du', 1);
INSERT 0 1
test=*# select name, case when val is null then 'nicht bestanden' else 'bestanden' end from foo;
 name |      case
------+-----------------
 ich  | nicht bestanden
 du   | bestanden
(2 rows)

Andreas