Re: DECODE

Поиск
Список
Период
Сортировка
От Josh Berkus
Тема Re: DECODE
Дата
Msg-id web-495383@davinci.ethosmedia.com
обсуждение исходный текст
Ответ на DECODE  (David Link <dlink@soundscan.com>)
Список pgsql-novice
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

В списке pgsql-novice по дате отправления:

Предыдущее
От: David Link
Дата:
Сообщение: DECODE
Следующее
От: "Duncan Adams (DNS)"
Дата:
Сообщение: moving postgres data