INSTR
函数在一个字符串中搜索指定的字符,返回发现指定的字符的位置。
注意:多字节符(汉字、全角符等),按 1 个字符计算。
语法
INSTR(c1,c2[,i[,j]])
参数
参数 | 说明 |
c1 | 被搜索的字符串。字符串类型可为:CHAR 、VARCHAR2 、NCHAR 、NVARCHAR2 或 CLOB 。 |
c2 | 希望搜索的字符串。字符串类型可为:CHAR 、VARCHAR2 、NCHAR 、NVARCHAR2 或 CLOB 。 |
i | 搜索的开始位置,默认值为 1。当值小于 0 时,搜索从反方向开始,但是仍返回被搜索到的字符的正序位置。 |
j | 第 j 次出现的位置,默认值为1。 |
返回类型
NUMBER
数据类型。
示例
此示例展示了字符 某 在字符串 重庆某软件公司 中第一次出现的位置。
SELECT INSTR ('重庆某软件公司','某',1,1) instring FROM DUAL;
返回结果:
+----------+
| instring |
+----------+
| 3 |
+----------+
此示例中, instring1 应返回正向搜索 ce 时在字符串中第二次出现的位置,instring2 应返回反向搜索 ce 时在字符串中第二次出现的位置:
SELECT INSTR ('oceanbase pratice','ce',1,2) instring1,INSTR ('oceanbase pratice','ce',-1,2) instring2 FROM DUAL;
返回结果,正向搜索时 ce 第二次出现在第 16 位,反向搜索时 ce 第二次出现在第二位:
+----------+------------+
| instring1 | instring2 |
+----------+------------+
| 16 | 2 |
+----------+------------+