基于分隔符排除特定字符的Oracle字符串操作
从字符串基于分隔符排除特定字符的Oracle字符串操作,oracle,Oracle,从字符串ES-123456-PSA西班牙-101,我只需要提取ES-123456-101分隔符位置是固定的 尝试了REGEXP_SUBSTR('ES-123456-PSA西班牙-101','[^-]+',2,3),给出了PSA西班牙 是否有办法忽略这些特定字符并返回其余字符。如果需要ES-123456-101,请使用以下方法: SELECT REGEXP_REPLACE('ES-123456-PSA Spain-101', '[^-]+-', '', 1, 3 ) FROM dual; 如果您
ES-123456-PSA西班牙-101
,我只需要提取ES-123456-101
分隔符位置是固定的
尝试了REGEXP_SUBSTR('ES-123456-PSA西班牙-101','[^-]+',2,3)
,给出了PSA西班牙
是否有办法忽略这些特定字符并返回其余字符。如果需要
ES-123456-101
,请使用以下方法:
SELECT REGEXP_REPLACE('ES-123456-PSA Spain-101', '[^-]+-', '', 1, 3 )
FROM dual;
如果您想要
ES-12345-101
,那么您能否解释12345
而不是123456
的逻辑?键入或省略最后一个字符?如果需要ES-123456-101
,请使用以下命令:
SELECT REGEXP_REPLACE('ES-123456-PSA Spain-101', '[^-]+-', '', 1, 3 )
FROM dual;
如果您想要
ES-12345-101
,那么您能否解释12345
而不是123456
的逻辑?键入或省略最后一个字符?您也可以使用subtr
和instr
with t as
(
select 'ES-123456-PSA Spain-101' as text from dual
)
select substr(text,1,instr(text,'-',1,2)) -- ES-123456-
||substr(text,instr(text,'-',1,3)+1) -- 101
from t
您还可以使用
subtr
和instr
with t as
(
select 'ES-123456-PSA Spain-101' as text from dual
)
select substr(text,1,instr(text,'-',1,2)) -- ES-123456-
||substr(text,instr(text,'-',1,3)+1) -- 101
from t
只是打错了,对不起,只是打错了,对不起。