我有大量的列要聚合在一起,其中大多数列的值都是空值。我想用';‘分隔出现的值,但我在oracle中找不到有效的方法来做到这一点。CONCAT_WS正是我所需要的,因为它不会在空值之间添加分隔符,但是oracle不支持这一点。
concat_ws(';','dx89','dx90','dx91','dx92') as diagnoses3
ORA-00904: "CONCAT_WS": invalid identifier使用像这样的函数是相似的,但不能得到我需要的东西,因为你可以看到字符串末尾的';‘,因为dx91和dx92是空值:
dx89||';'||dx90||';'||dx91||';'||dx92 as diagnoses2
I63.8;I63.9;;任何帮助都将不胜感激!
发布于 2020-04-08 22:50:27
您可以将特定于Oracle DB的nvl2()函数与管道连接运算符一起使用:
select dx89||nvl2(dx90,';'||dx90,dx90)||nvl2(dx91,';'||dx91,dx91)
from tabhttps://stackoverflow.com/questions/61103090
复制相似问题