Более короткая альтернатива выражению CASE WHEN? - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть выражение SQL для сопоставления некоторых данных из одного формата в другой:

CASE field
WHEN 'AU' THEN '036'
WHEN 'AT' THEN '040'
WHEN 'BE' THEN '056'
-- and so on
END

К сожалению, мне нужно поместить это выражение в текстовое поле с ограниченной длиной (поле формулы NetSuite), а количество вариантов у меня не подходит. Есть ли в Oracle менее многословная альтернатива выражению CASE, чтобы я мог написать это, используя меньше символов?

1 Ответ

6 голосов
/ 08 апреля 2019

Да, используйте функцию DECODE() :

DECODE(field,
'AU', '036',
'AT', '040',
'BE', '056'
)
...