Oracle 常用函数 详解(2)

INSTR函数确定搜索字符串在给定字符串内的位置。它返回数字位置,在这个位置上,搜索字符串开始第n次出现(相对于指定的起始位置而言)。如果搜索字符串不存在,则返回0.

INSTR函数使用两个可选参数和两个强制参数。语法:INSTR(source string,search string,[search start position],[nth occurrence])search start position的默认值是1或者source string的开头。nth occurrence 的默认值是1或者第一次出现。

select instr('1#3#5#7#9#','#') from dual;

从左第1个字符往右,返回'#'1次出现的位置。

select instr('1#3#5#7#9#','#',5) from dual;

从左第5个字符往右,返回'#'1次出现的位置。

select instr('1#3#5#7#9#','#',3,4) from dual;

从左第3个字符往右,返回'#'4次出现的位置。

select instr('1#3#5#7#9#','#',3,10) from dual;

从左第3个字符往右,返回'#'10次出现的位置,没有找到返回0.

select instr('1#3#5#7#9#','#',-1) from dual;

从右第1个字符往左,返回'#'1次出现的位置。

select instr('1#3#5#7#9#','#',-1,3) from dual;

从右第1个字符往左,返回'#'3次出现的位置。

select instr('1#3#5#7#9#','#',-3,3) from dual;

从右第3个字符往左,返回'#'3次出现的位置。

      SUBSTR

SUBSTR函数从给定源字符串中给定的位置开始,提取指定长度的字符串。如果起始位置大于源字符串的长度,就会返回null。如果从给定起始位置提取的字符数大于源字符串的长度,返回的部分是从起始位置到字符串结尾的子字符串。

SUBSTR函数有三个参数,前两个是强制的。语法:SUBSTR(source string,start position,[number of characters to extract])。要提取的默认字符数是从start position source string 结尾的字符数。

select substr('1#3#5#7#9#',5) from dual;

从从左到右数第5个字符处开始提取,从左到右提取,一直到源字符串结尾。

select substr('1#3#5#7#9#',5,3) from dual;

从从左到右数第5个字符处开始提取,从左到右提取,提取3个字符。

select substr('1#3#5#7#9#',-3,2) from dual;

从从右到左数第3个字符处开始提取,从左到右提取,提取2个字符。

            select substr('1#3#5#7#9#',-3,-2) from dual;

                    空

      REPLACE

REPLACE函数用替换项取代源字符串中出现的所有搜索项。如果替换项的长度与搜索项的长度不同,那么返回字符串的长度与源字符串的长度也不同。如果没有找到搜索字符串,就会原封不动的返回源字符串。

REPLACE函数有三个参数,前两个是强制的。语法:REPLACE(source string,search item[,replacement term])。如果省略replacement term参数,就会从source string 中删除所有出现的search item

select replace('1#3#5#7#9#','#','->') from dual;

select replace('1#3#5#7#9#','#') from dual;

      TRANSLATE 三、数字函数       ROUND

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/078f840cb4be3c96a03d9f35207f0393.html