ich stehe irgendwie auf dem Schlauch; ich kann mich vage erinnern vor Jahren so etwas Ähnliches schon mal gemacht zu haben, aber mir fällt beim besten Willen der Befehl nicht ein.
Das Problem ist, dass die Bedeutung von „1,2,3“ nirgends in einer Tabelle steht, so dass ich nicht über ein Join rankommen kann.
Ich will auch nicht die Tabelle ändern, nur anders als gespeichert select-en.
Ich suche also etwas derart:
select Obstsorte, umwandeln(Farbcode,1='Rot',2='Gelb', 3='Lila') Farbe
from Frucht;
select Obstsorte, decode(Farbcode,
1,‚Rot‘,2,‚Gelb‘,3,‚Lila‘,‚andere Farbe‘) as Farbe
from Frucht;
Pipifax - macht doch jeder
Vor kurzem (kann auch schon einige Jahre her sein) sah ich eine Lösung und braucht zugegebenermaßen einen zweiten Blick um festzustellen, dass der Entwickler dieses Codes kein decode kannte - umgewandelt auf diese Abfrage:
select a.obstsorte, nvl(b.farbe,'andere Farbe')
from frucht a,
(select 1 code,'Rot' farbe from dual
union
select 2 code,'Gelb' farbe from dual
union
select 3 code,'Lila' farbe from dual) b
where a.farbcode = b.code (+)