David,
> How does one do the equivalence of Oracle's DECODE in PostgreSQL?
>
> select
> decode (v.media, 'V', 'VHS', 'L', 'Laser Disk', 'Unknown')
> from
> videos v
> ;
Use a CASE statement:
SELECT (CASE WHEN v.media = 'V' THEN 'VHS'
WHEN v.media = 'L' THEN 'Laser Disk'
ELSE 'Unknown' END) AS media_exp
FROM videos v;
If you wanted, you could write a PL/pgSQL function to simplify this,
using two array parameters to hold the lists.
HOWEVER, it would be far better than both of the above, relationally,
to
create a reference table populated with the appropriate values
(media_code, media_name) and JOIN the reference table. This would
prevent you from having to populate a special function on each and
every
query!
-Josh
______AGLIO DATABASE SOLUTIONS___________________________
Josh Berkus
Complete information technology josh@agliodbs.com
and data management solutions (415) 565-7293
for law firms, small businesses fax 621-2533
and non-profit organizations. San Francisco