Oracle, Alternative zu DECODE ist CASE

Decode ist eine einfache Funktion, in der man eine Expression beschreibt und dann fast beliebig viele Ersetzungen durchführen kann.
Leider werden die Expressions, Search und Result-Ketten aber manchmal zu komplex oder Decode mehrfach geschachtelt.
Einfacher ist es hier, direkt Case einzusetzen.

DECODE
Syntax: decode( expression , search , result [, search , result]… [, default] ) as label

select
decode(POSTLEITZAHL, 70599, ‘Stuttgart – Asemwald’, 70499, ‘Stuttgart – Bergheim’, ‘UNBEKANNT’) from ADRESSE;

 

 

CASE – Funktion, längere Schreibweise, – aber flexibler

Syntax: case when expression then result
when expression then result
when expression then result
else default
end as label

Beispiel in einer Geräteliste

select
case
when substr(name, -2)=’RH‘ then ‚Router‘
when device_id between 1015544 and 1015600 then ‚MURXS‘
else ’sonstiges‘
end as Zusatz
, e.* from my_cmdb_devices  e;