oracle 获取字符串特定字符 有个字符串 比如 123;234;345;456;567;想把它分解成 123 和 234;345;456;567 两个字符串,请问要这么实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select substr('123;234;345;456;567',0,3) sstr,substr('123;234;345;456;567',4,11) estr from dual --不知道楼主最终是不是这样的需求with tb as(select '11;22;3323;abc;ddd' id from dual)selectsubstr(';'||id||';',instr(';'||id||';',';',1,rownum)+1, instr(';'||id||';',';',1,rownum+1)-instr(';'||id||';',';',1,rownum)-1) newid,instr(';'||id||';',';',1,rownum)col1, --';'rownum次出现的位置instr(';'||id||';',';',1,rownum+1)col2, --';'rownum+1次出现的位置instr(';'||id||';',';',1,rownum+1)-instr(';'||id||';',';',1,rownum) col3 --要截取的长度from tbconnect by rownum <= length(';'||id||';') - length(replace(';'||id||';', ';', ''))-1NEWID COL1 COL2 COL3---------------------------------------- ---------- ---------- ----------11 1 4 322 4 7 33323 7 12 5abc 12 16 4ddd 16 20 4 直接substrselect substr('123;234;345;456;567',1,instr('123;234;345;456;567',';',1)-1) str1,substr('123;234;345;456;567',instr('123;234;345;456;567',';',1)+1) str2from tb oracle初级问题一起问 在BO里查看报表时,出现无法连接的错误。 DDL trigger的权限问题 请教一句sql,谢谢 oracle 用存储过程备份数据库中的表 每月备份一次 sql语句 50次上限问题 如何猜测Listener经常停止的原因? 监听器自己就停止了?????????????? 大家进来谈谈字符集的问题??? 在oo4o中,调用GetDatabaseFromPool后,使用完数据库对象后需要释放吗? 关于在布署有防火墙的环境下,客户端连接ORACLE数据库1521端口的问题 GoldenGate 技术问题解决方案有偿征集
--不知道楼主最终是不是这样的需求
with tb as(
select '11;22;3323;abc;ddd' id from dual)
select
substr(';'||id||';',instr(';'||id||';',';',1,rownum)+1,
instr(';'||id||';',';',1,rownum+1)-instr(';'||id||';',';',1,rownum)-1) newid,
instr(';'||id||';',';',1,rownum)col1, --';'rownum次出现的位置
instr(';'||id||';',';',1,rownum+1)col2, --';'rownum+1次出现的位置
instr(';'||id||';',';',1,rownum+1)-instr(';'||id||';',';',1,rownum) col3 --要截取的长度
from tb
connect by rownum <= length(';'||id||';')
- length(replace(';'||id||';', ';', ''))-1NEWID COL1 COL2 COL3
---------------------------------------- ---------- ---------- ----------
11 1 4 3
22 4 7 3
3323 7 12 5
abc 12 16 4
ddd 16 20 4
substr('123;234;345;456;567',instr('123;234;345;456;567',';',1)+1) str2
from tb