我想從https地址中提取兩個字符串集。我使用Oracle 11g,這是我的數據,我的解決方案:如何從Oracle SQL中的https地址解析數字?
with mcte as (
select 'https://id.adsf.fi/dfad2/services/org/Organizations/9884752-6/2542595-3/Corlsdf-asdf/Corlsdf/MOB50202282' as addr from dual
union all
select 'https://id.asdf.fi/dfad2/services/org/Organizations/2435213-2/Corlsdf-asdf/Corlsdf/KVY239229' as addr from dual
union all
select 'https://id.asdf.fi/dfad2/services/org/Organizations/6356334-0' as addr from dual
union all
select 'https://id.asdf.fi/dfad2/services/org/Organizations/6356334-0/6356324-0' as addr from dual
union all
select 'https://id.asdf.fi/dfad2/services/org/Organizations/6356334-0/6356324-0/' as addr from dual
)
select addr,
REGEXP_SUBSTR(addr, '(Organizations\/)(\d+)', 1, 1, null, 2) AS num1,
REGEXP_SUBSTR(addr, '(Organizations\/)(\d+)', 1, 1, null, 3) AS num2
from mcte
;
這不會導致正確的設置應該是這樣的NUM1和NUM2
+----------------------------------------------------------------------------------------------------------+-----------+-----------+
| id | num1 | num2 |
+----------------------------------------------------------------------------------------------------------+-----------+-----------+
| https://id.adsf.fi/dfad2/services/org/Organizations/9884752-6/2542595-3/Corlsdf-asdf/Corlsdf/MOB50202282 | 9884752-6 | 2542595-3 |
| https://id.asdf.fi/dfad2/services/org/Organizations/2435213-2/Corlsdf-asdf/Corlsdf/KVY239229 | 2435213-2 | NULL |
| https://id.asdf.fi/dfad2/services/org/Organizations/6356334-0 | 6356334-0 | NULL |
| https://id.asdf.fi/dfad2/services/org/Organizations/6356334-0/6356324-0 | 6356334-0 | 6356324-0 |
| https://id.asdf.fi/dfad2/services/org/Organizations/6356334-0/6356324-0/ | 6356334-0 | 6356324-0 |
+----------------------------------------------------------------------------------------------------------+-----------+-----------+
我怎樣才能做到這一點?