あなたはこれを試すことができます。
with notes(text) as (
select 'PO Invoice number 1234' from dual union all
select 'PO invoice number 34555' from dual union all
select 'addnsd;01/01/2016;01/04/2016;ssnfdskjnfkjsnfk' from dual union all
select 'andksnd;01/02/2016;02/01/2016;sdnskjnfk' from dual union all
select 'Hotel' from dual union all
select 'Loding' from dual
)
select text, listagg(date_string, ';') within group (order by date_string)
from (
select distinct text, regexp_substr(text, '[0-9]{2}/[0-9]{2}/[0-9]{4}', 1, level) as date_string
from notes
connect by regexp_instr(text, '[0-9]{2}/[0-9]{2}/[0-9]{4}', 1, level) != 0
)
group by text
これはDISTINCT使用していますので、あなたが複数回行に比べて同じ日付を持っている場合、あなただけの1件の発生を取得します。
不適切なデザイン。あなたは再因子化することができますか?日付は常にMM/DD/YYY形式で、「;」で区切られます。 ? – OldProgrammer
はい、MM/DD/YYYYになりますが、データは - :asasds; 01/01/2016; 01/02/2016; sdsdsfdfまたはdadad; adsdsd; 01/02/2016; 02/10/2016; sadsadsdsd – user6167232
テーブルまたは複数の行から複数の行を表示する例ですか? – OldProgrammer