Как сделать два условия в рамках DECODE - PullRequest
0 голосов
/ 29 января 2020

Я делаю отчет, и для этого отчета мне нужно убедиться, что в одном DECODE в Oracle выполнены два условия, недавно я узнал функцию DECODE, и именно поэтому у меня возникает вопрос.

Что я сделал из меня DECODE - это следующее:

DECODE (CODE, 'PR', 'Number 1',
              'ES', 'Number 2',

Для того, чтобы мои два условия были выполнены, мне нужно, чтобы он CODE был 'PO', а также чтобы его EQUIV быть равным 85. Это будут два условия, которые мне нужно выполнить в DECODE, в дополнение к тому, что у меня уже есть.

Поиск в официальной документации Oracle Я не нашел ничего похожего на то, что мне нужно Документация

1 Ответ

3 голосов
/ 29 января 2020

Не используйте decode(). Это сделанный на заказ Oracle синтаксис. С незапамятных времен (почти) SQL поддерживает case выражения - более гибкие, чем decode() и доступные во всех (реальных) базах данных.

Итак, для вашего фрагмента кода:

(CASE WHEN CODE = 'PR'
      THEN 'El Título de '
      WHEN CODE = 'ES'
      THEN 'El Diploma de '
      WHEN CODE = 'PO' AND EQUIV = 85
      THEN 'Jest absolwentem '
 END)

Вы можете добавить любые условия, которые вы хотите, к WHEN, включая подзапросы, если вам нужно.

...