Oracle中instr函数使用方法

在Oracle中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束 INSTR (源字符串, 目标字符串, 起始位置, 匹配序号)   INSTR方法的格式为

INSTR(src, subStr,startIndex, count)

src: 源字符串

subStr : 要查找的子串

startIndex : 从第几个字符开始,负数表示从右往左查找。(此参数可选,默认为1)

count: 要找到第几个匹配的序号。(此参数可选,默认为1)

返回值: 子串在字符串中的位置,第1个为1;不存在为0。(特别注意:
如果src为空字符串,返回值为null)。  

举例:

scenarioinfo 中有60条数据,其中字段ywwd不为空的有40条(其中包含“积分”的有30条),字段ywwd为空的有20条。

查询scenarioinfo 表中字段ywwd包含“积分”的语句(返回30条数据):

select id, ywwd from scenarioinfo where instr(ywwd,积分,1,1) > 0;

查询scenarioinfo 表中字段ywwd不包含“积分”的语句(这里返回的结果集中不包含ywwd字段为null的结果,返回10条数据):

select id, ywwd from scenarioinfo where instr(ywwd,积分,1,1) = 0;

如果想返回的结果集中包含ywwd字段为null的,可以这样写(返回30条数据):

select id, ywwd from scenarioinfo where instr(ywwd,积分,1,1) = 0 and ywwd is null;

 

 

 

相关文章