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

2-152-332-312-812-2212-3我想在Oracle数据库中使用sql截取-前面的值以及-后面的值,求语句写法,谢谢!... 2-15

2-33
2-3
12-8
12-22
12-3
我想在Oracle数据库中使用sql截取-前面的值以及-后面的值,求语句写法,谢谢!
展开
 我来答
百度网友faadf46
高粉答主

2019-09-14 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:73.4万
展开全部

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

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

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

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

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

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

badkano
推荐于2017-09-14 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部

创建测试表及数据

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

截图

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
庄经略7s
2015-03-20 · TA获得超过155个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:214万
展开全部
截取前面:substr(列名,0,INSTR(列名,'-',1,1))

截取后面:substr(列名,INSTR(列名,'-',1,1))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jc861226
2015-03-20 · 超过19用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:40.5万
展开全部
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'改成你的字段名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式