1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| WITH MaTable AS
(
SELECT 1 AS cid, 'Capital repay EUR 0.4 + Special USD 0.67' AS col FROM dual UNION ALL
SELECT 2 , 'Special EUR 0.445' FROM dual UNION ALL
SELECT 3 , 'Special GBP 0.597 + Capital repay EUR 0.4' FROM dual UNION ALL
SELECT 4 , 'Capital repay EUR 0.4' FROM dual
)
, tmp as
(
select cid, col,
case instr(col, 'Special')
when 0
then null
else substr(col, instr(col, 'Special'), coalesce(nullif(instr(substr(col, instr(col, 'Special')), ' ', 1, 3)-1, -1), 99))
end as terms
from MaTable
)
select cid, col, terms
, substr(terms, instr(terms, ' ', 1, 1) + 1, instr(terms, ' ', 1, 2) - instr(terms, ' ', 1, 1) - 1) as monnaie
, substr(terms, instr(terms, ' ', 1, 2) + 1) as valeur
from tmp;
CID COL TERMS MONNAIE VALEUR
---------- ----------------------------------------- ------------------ ------- -------
1 Capital repay EUR 0.4 + Special USD 0.67 Special USD 0.67 USD 0.67
2 Special EUR 0.445 Special EUR 0.445 EUR 0.445
3 Special GBP 0.597 + Capital repay EUR 0.4 Special GBP 0.597 GBP 0.597
4 Capital repay EUR 0.4 |
Partager