oracle中 sql截取某个字符前面和后面的值

2024-11-19 20:16:42
推荐回答(4个)
回答1:

1、将新建好的表aaaa,填充需要查询的数据以"_"或者","为分隔符的两条数据。

2、先挑ID为1的数据进行截取查询演示。

3、如果已知截取字符的长度和特殊字符位置,就可以用substring()函数来从字符串的开始位置,截取到特殊字符出现的位置。

4、使用charindex()函数来返回特殊字符出现的位置,查询结果及语句。

5、使用LEFT()函数和charindex()函数来从字符最左边开始到特殊字符出现的位置。

6、第一个参数表示被截取的字符串,第二个参数表示要在第一个参数中开始截取的位置,第三个参数表示要截取的长度。

回答2:

创建测试表及数据

create table test
(name varchar2(10));

insert into test values ('2-15');
insert into test values ('2-33');
insert into test values ('2-3');
insert into test values ('12-8');
insert into test values ('12-22');
insert into test values ('12-3');

 执行

select name,substr(name,1,instr(name,'-')-1) 前,substr(name,instr(name,'-')+1,length(name)-instr(name,'-')) 后 from test

截图

回答3:

截取前面:substr(列名,0,INSTR(列名,'-',1,1))

截取后面:substr(列名,INSTR(列名,'-',1,1))

回答4:

SELECT SUBSTRING('12-22',0,CHARINDEX('-','12-22',0)),SUBSTRING('12-22',CHARINDEX('-','12-22',0)+1,LEN('12-22')-CHARINDEX('-','12-22',0))

把那个‘12-22'改成你的字段名