oracle中bacabc这样的字符串 怎样取出第一个a

如题所述

需要用instr函数及substr函数共同实现。

执行语句:

select substr('bacabc',instr('bacabc','a'),1) from dual;

执行结果:

instr函数:

语法:

instr( string1, string2, start_position,nth_appearance )

参数说明:

substr函数:

语法:

substr(strings|express,m,[n])

参数说明:

string - 指定的要截取的字符串

start - 必需,规定在字符串的何处开始

正数 - 在字符串的指定位置开始

负数 - 在从字符串结尾的指定位置开始

0 - 在字符串中的第一个字符处开始

length - 可选,指定要截取的字符串长度,缺省时返回字符表达式的值结束前的全部字符。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-21
InStr 函数
返回某字符串在另一字符串中第一次出现的位置。

InStr([start, ]string1, string2[, compare])

参数
start

可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。如果已指定 compare,则必须要有 start 参数。

string1

必选项。接受搜索的字符串表达式。

string2

必选项。要搜索的字符串表达式。

compare

可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,将执行二进制比较。

设置
compare 参数可以有以下值:

常数 值 描述
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。

返回值
InStr 函数返回以下值:

如果 InStr 返回
string1 为零长度 0
string1 为 Null Null
string2 为零长度 start
string2 为 Null Null
string2 没有找到 0
在 string1 中找到 string2 找到匹配字符串的位置
start > Len(string2) 0

实例:
select instr('dfgdfgeeefg','e') h from dual
返回值为7

不知道你是不是要知道这个本回答被提问者采纳