Есть ли эквивалент * concat_ws в oracle? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть тонна столбцов, которые я пытаюсь объединить вместе, и большинство из них имеют значения NULL. Я хочу отделить значения, которые появляются с ';' но я не могу найти эффективный способ сделать это в oracle. CONCAT_WS был бы именно тем, что мне нужно, поскольку он не добавил бы разделитель между значениями NULL, но oracle не поддерживает это.

concat_ws(';','dx89','dx90','dx91','dx92') as diagnoses3

ORA-00904: "CONCAT_WS": invalid identifier

Использование подобной функции аналогично, но не совсем дает мне то, что мне нужно, как вы можете видеть в «;» в конце строки, поскольку dx91 и dx92 имеют значения NULL:

dx89||';'||dx90||';'||dx91||';'||dx92 as diagnoses2

I63.8;I63.9;;

Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 08 апреля 2020

Вы можете использовать nvl2() спецификацию функции c до Oracle DB вместе с операторами конкатенации труб:

select dx89||nvl2(dx90,';'||dx90,dx90)||nvl2(dx91,';'||dx91,dx91)
  from tab
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...