用正则:
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、网站建设、外贸网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的广安网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
SELECT REGEXP_SUBSTR('ABCD+北京市朝阳区富贵小区3号楼1单元101+100000+平邮', '[^+]+', 1, 1),
REGEXP_SUBSTR('ABCD+北京市朝阳区富贵小区3号楼1单元101+100000+平邮', '[^+]+', 1, 2),
REGEXP_SUBSTR('ABCD+北京市朝阳区富贵小区3号楼1单元101+100000+平邮', '[^+]+', 1, 3),
REGEXP_SUBSTR('ABCD+北京市朝阳区富贵小区3号楼1单元101+100000+平邮', '[^+]+', 1, 4)
FROM DUAL
如果你想要列都自动的话,就需要 table(cast(multiset + pivot
直接使用拼接的方法来解决此问题。
如下参考:
1.新的PHP文件,如下所示。
2.声明数组变量,如下图所示。
3.使用内爆函数将数组连接到具有连接字符-的字符串中。
4.输出连接后的字符串,如下图所示。
5.预览效果如图所示。
6.用implode函数使数组拼接成字符串,连接符为?完成如下。
拆分sql后:
select
substr('Hello World',0,instr('Hello World','o')) as 首,
substr('Hello World',instr('Hello World','o')+1) as 尾
from dual;
有什么规定吗?
“ABCDEFGH”或是“A,B,C,D,E,F,G,H"
按符号拆分?按位置拆分?
substr()函数:截取a-b之间的或a 。如:substr('Hello World',0,5)截取1-5或
substr('Hello World',0,instr('Hello World','o'))截取1-"o"的位置
1.如果是","等符号:
select substr('Hello World',0,instr('Hello World','o')) from dual;
select substr('Hello World',instr('Hello World','o')+1) from dual;
或
select substr('Hello World',instr('Hello World','o')+1,length('Hello World')) from dual;
第一种方法:用substr和instr组合,如:字段b=substr(a,0,INSTR(a,'-')-1),字段c=substr(a,INSTR(a,'-')+1,INSTR(a,'-',1,2)-INSTR(a,'-')-1),字段d=SUBSTR(a,INSTR(a,'-',1,2)+1)。
第二种方法:将a字段导出,用awk或cut等工具处理之后,再导进去
select substr(to_char(date,'YYYY-MM-DD HH24:mi:ss'),1,10) 日期,
substr(to_char(date,'YYYY-MM-DD HH24:mi:ss'),12) 时间,
substr(name,1,2) 字符1,
substr(name,4,2) 字符2,
substr(name,7,2) 字符3
from tablename
试验通过
SCOTT@orcl ed
已写入 file afiedt.buf
1* select substr(to_char(time,'YYYY-MM-DD HH24:mi:ss'),1,10) 日期,substr(to_char(time,'YYYY-MM-DD
(name,1,2) 字符1, substr(name,4,2) 字符2, substr(name,7,2) 字符3 from test1
SCOTT@orcl /
日期 时间 字符 字符 字符
-------------------- ---------------- ---- ---- ----
2009-04-12 14:10:23 aa bb cc
已用时间: 00: 00: 00.01
SELECT REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 1),
REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 2),
REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 3),
DECODE(REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 5), NULL, NULL, REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 4)),
DECODE(REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 5), NULL, REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 4), REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 5))
FROM 机构层级关系表 t
前三列根据正则匹配,获取对应的分割后的值,没有啥讲的,
第四列要判断是否存在第五列,如果不存在,则第四列要空,存在则用第四列的值
第五列要判断是否存在第五列,如果不存在,则给第四列的值,存在则用第五列的值