Oracle的INSTR函數用于在一個字符串中查找子字符串的位置。以下是INSTR函數的一些常見用法:
INSTR(str, sub_str)
例如:SELECT INSTR(‘hello world’, ‘world’) FROM dual;
結果為6,表示子字符串’world’在字符串’hello world’中的起始位置為6。
INSTR(str, sub_str, start_pos)
例如:SELECT INSTR(‘hello world’, ‘o’, 5) FROM dual;
結果為8,表示在字符串’hello world’中,從位置5開始查找,第一個子字符串’o’的起始位置為8。
INSTR(str, sub_str, start_pos, occurrence)
例如:SELECT INSTR(‘hello world’, ‘o’, 1, 2) FROM dual;
結果為8,表示在字符串’hello world’中,從位置1開始查找,第2次出現子字符串’o’的起始位置為8。
INSTR(str, sub_str, -start_pos)
例如:SELECT INSTR(‘hello world’, ‘o’, -5) FROM dual;
結果為8,表示在字符串’hello world’中,從倒數第5個位置開始往前查找,第一個子字符串’o’的起始位置為8。
需要注意的是,INSTR函數返回的位置是從1開始計數的。如果找不到子字符串,則返回0。