oracle怎样查找某个字符所在字符串第n次出现的位置?

夏辰晔D8
2018-01-25 · TA获得超过3362个赞
知道小有建树答主
回答量:29
采纳率:100%
帮助的人:9982
展开全部

INSTR(string,set[,start [,occurrence ] ] ) 如果指定start,oracle则跳过前面所有字符串到该位置开始搜索,occurence,是强迫instr跳过前几次与字符串匹配,给出下一次匹配的位置,如果occurence指定3,那就是匹配第三次的位置了。

例 instr('ABACAAA','A',2,2) 从ABACAAA中匹配A这个字符串,从2个位置开始匹配,匹配第2次A所在的位置。PS:如果set中不止有一个字符而是有几个字符组成的,则INSTR给出该字符集中的第一个字符的位置。

NSTR方法的格式为

INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)。也可以表示为INSTR(源字符串, 目标字符串),起始位置, 匹配序号默认都为1.

例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE

FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。

默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。

所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL

的显示结果是

Instring

纯洁的小孩01
2018-01-24 · TA获得超过6539个赞
知道小有建树答主
回答量:49
采纳率:0%
帮助的人:7466
展开全部

通过instr函数即可解决。

具体方法如下:

select instr(t.org_code,'-',-1,2) from organ t where t.org_code='1-9-18-8'-1表示从尾部开始,倒数第一个。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yulaohan2
2018-01-20 · TA获得超过3111个赞
知道小有建树答主
回答量:19
采纳率:100%
帮助的人:7087
展开全部

instr函数就可以解决。
instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')
平常我们都是默认是从第一位开始第一次出现的位置,所以后面两个省略了,其实是有这方面参数的。

oracle的<>与!=有什么区别

<>是标准语法.可以移植到其他任何平台.
!=是非标准语法.可移植性差.
但都是表示不等于的意思.
应用中尽量用<>

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2186ll
2018-01-09 · TA获得超过4594个赞
知道小有建树答主
回答量:15
采纳率:100%
帮助的人:2075
展开全部

instr函数就可以解决。
instr('源字符串' , '目标字符串' ,'开始位置','第几次出现') ,平常我们都是默认是从第一位开始第一次出现的位置,所以后面两个省略了,其实是有这方面参数的。

instr('源字符串' , '目标字符串' ,'开始位置','第几次出现') 平常我们都是默认是从第一位开始第一次出现的位置,所以后面两个省略了,其实是有这方面参数的。

最后一次出现位置 :=FIND("这个不重复就行",SUBSTITUTE(A1,"-"," 这个不重复就行",LEN(A1)-LEN(SUBSTITUTE(A1,"-","")。第N次出现位置,假如查第四个的位置,=find("这个不重复就行",substitute(A1,"\","这个不重复就行",4))。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式