Oracle数据库中instr函数的使用

INSTR(C1,C2,I,J) 

在一个字符串中搜索指定的字符,返回发现指定的字符的位置;

C1 被搜索的字符串 
C2 希望搜索的字符串 
I 搜索的开始位置,默认为1 
J 出现的位置,默认为1 

SELECT instr('hello world','world') FROM dual;

还可用于代替like,并使模糊更强大

在我们使用like时一般都是:
已知字段 like 关键字

如果反过来呢
例如我有一个地址:A省B市C区D街xxx号

数据库中有一个表Table,已知字段:
A:省
B:市
C:区
D:街
E:地区信息

那么我怎么通过已知地址获取到E字段的信息?

引用instr函数实现:
select E from table 
where
instr('A省B市C区D街xxx号',A)>1
and instr('A省B市C区D街xxx号',B)>1
and instr('A省B市C区D街xxx号',C)>1
and instr('A省B市C区D街xxx号',D)>1

发表评论

电子邮件地址不会被公开。 必填项已用*标注