我有一个顶点项,其值如Value1、Value2、Value3,因此我需要显示以下值
值1
值2
值3
下面是我的选择查询,有人能帮助这里显示逗号分隔的值吗例如:a、b、c、d
我需要看到的输出
abcd
SELECT AD.EMAIL_ADDRESS recipient
FROM HES_EXTERNAL_ACCOUNTS EA,
HES_ADDRESSES AD
WHERE EA.ACCOUNT_CODE = 'AUTO';
上述查询将导致像a、b、c、d这样的电子邮件地址需要显示在顶点项中一bcd
虽然Chris Saxon的文章描述了许多SQL场景和一个很酷的SQL宏,但APEX提供了一个将字符串拆分成行的简单工具:
select column_value from table(apex_string.split('a,b,c,d',','));
Result Sequence
----------------
a
b
c
d
table((子句在某个数据库版本(可能是18c(中是不需要的。
但是你的问题并不完全清楚你需要什么样的产出。一方面,你似乎想用空格代替逗号
replace('a,b,c,d', ',', ' ')
但在另一个时刻,你建议使用另一个中的一个
replace('a,b,c,d', ',', '<br>')
如果在报告中显示为列,则需要关闭转义
如果该选择返回一行,则这是一个可能的解决方案:
CREATE TABLE emails (email_list) AS (
select 'mickey.mouse@disney.com, homer.simpson@acme.com'
from dual
);
Table EMAILS created.
select TRIM(regexp_substr (
email_list,
'[^,]+',
1,
level
)) email
from emails
connect by level <=
length ( trim ( both ',' from email_list ) ) -
length ( replace ( email_list, ',' ) ) + 1;
EMAIL
-----------------------------------------------
mickey.mouse@disney.com
homer.simpson@acme.com
但Chris已经做了所有的研究,并在这里写了博客。该博客总结了最常见的案例以及每种案例的解决方案。