Декодировать эквивалент в postgres

Нет эквивалента функции декодирования Oracle В Postgres.Is есть кто-нибудь, кто написал декодирование как функцию?

Ответ 1

Существует эквивалент. Он назывался CASE.

Существуют две формы CASE:

Простой CASE:

CASE search-expression
    WHEN expression [, expression [ ... ]] THEN
      statements
  [ WHEN expression [, expression [ ... ]] THEN
      statements
    ... ]
  [ ELSE
      statements ]
END CASE;

Искал CASE:

CASE
    WHEN boolean-expression THEN
      statements
  [ WHEN boolean-expression THEN
      statements
    ... ]
  [ ELSE
      statements ]
END CASE;

CASE утверждения легче читать; Я предпочитаю их в decode() в Oracle.

Ответ 2

Если вы привыкли к определенным функциям Oracle, вы можете установить расширение PostgreSQL orafce.

Среди других специальных функций Oracle orafce также реализует DECODE - тот, который вы ищете.

Если вы работаете на Ubuntu, вам просто нужно установить пакет postgresql-9.1-orafce, чтобы сделать orafce доступным на вашем сервере PostgreSQL.