INSTR 函数是 Oracle 中用于查找子字符串位置的核心函数。它返回指定子串在源字符串中的位置,若未找到则返回 0。
📝 函数语法
INSTR 函数拥有灵活的语法,可以精确地定义搜索的起始点和要查找的第几次出现。
sql
INSTR ( string , substring [, start_position [, occurrence ]] )
📖 参数详解
| 参数 | 说明 |
|---|---|
| string | 源字符串,被搜索的字符串。 |
| substring | 目标子串,要查找的字符串,可以为单个或多个字符。 |
| start_position | 起始位置 (可选,默认值 1),从源字符串的哪个位置(字符数)开始搜索。可以为负数,表示从末尾开始反向搜索。 |
| occurrence | 出现次数 (可选,默认值 1),指定查找子串的第几次出现。 |
返回类型 :NUMBER 类型,代表查找到的子串第一个字符在源字符串中的位置,位置从****1 开始计数 。
💡 使用示例
- 基础查找 :查找子串首次出现的位置。
sql
SELECT INSTR('Hello World', 'o') FROM dual; --结果: 5
(其中,子串 'o' 在字符串 'Hello World' 中首次出现的位置是 5)。
- 指定起始位置 :从第6个字符开始查找,结果为9。
sql
SELECT INSTR('This is a test string', 's', 6) FROM dual; --结果: 9
(起始位置是 6,跳过第一个 's',从 'is a' 后面的 's' 开始查找)。