例如“红/绿/蓝”分为以下几种
red
red/green
red/green/blue
select * from table where column in('red','red/green','red/green/blue');
您可以使用substr
和inst
组合作为:
with t as
(
select 'red/green/blue' as str from dual
)
select substr(str,1,instr(str,'/',1,1)-1) str1,
substr(str,1,instr(str,'/',1,2)-1) str2,
str as str_whole
from t;
STR1 STR2 STR_WHOLE
---- ---------- --------------
red red/green red/green/blue
如果您想按行进行,您可以通过添加regexp_count
以下样式来使用:
with t as
(
select 'red/green/blue' as str from dual
)
select decode(sign(instr(str,'/',1,level)),1,substr(str,1,instr(str,'/',1,level)-1),str)
as str
from t
connect by level <= regexp_count(str,'/') + 1;
STR
--------------
red
red/green
red/green/blue
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句