首页 > 代码库 > Oracle 常用函数- 字符和数学函数

Oracle 常用函数- 字符和数学函数

oracle的开发和使用中,经常需要用到各种各样的函数,这一章归纳下简单的字符串、数学函数,以后需要用起来也方便点,也能让有缘的同学少走一点弯路。

--常用字符相关函数

1substr字符串截取

substr(字符串,截取开始位置,截取长度)

select substr(‘abcdef‘,1,3) from dual

截取开始位置,01都是表示截取的开始位置为第一个字符;

 

2 instr查找子串位置

   select instr(‘abcfdgfdhd‘,‘fd‘)from dual

返回第一个子串的位置。

 

3||字符串连接

 select ‘hello‘||‘, world‘ fromdual;

 

4trim对字符串两边的处理

trim一般都是用在删除字符串两边的空格,也可以用来删除字符串两边的指定字符。trim指定删除的字符串只能是单个字符。

1. trim()删除字符串两边的半角空格。

2. ltrim()删除字符串左边的半角空格。

3. rtrim()删除字符串右边的半角空格。

4. trim(‘字符1‘ from ‘字符串2‘) 分别从字符2串的两边开始,删除指定的字符1

5. trim([leading | trailing | both] trim_char from string) 从字符串String中删除指定的字符trim_char

  leading:从字符串的头开始删除。

  trailing:从字符串的尾部开始删除。

  both:从字符串的两边删除。

 

select trim(‘  ffm   ‘) as name from dual;   

select ltrim(‘  ffm   ‘) as name from dual;   

select rtrim(‘  ffm   ‘) as name from dual;   

 

select trim(leading ‘f‘ from ‘ffmmff‘) from dual ;

select trim(trailing  ‘f‘ from‘ffmmff‘) from dual ;

select trim(both  ‘f‘ from ‘ffmmff‘)from dual ;

 

5 ascii返回字符串首字母的Ascii

   select ascii(‘a‘) from dual

 

6chr返回ascii值对应的字母

   select chr(97) from dual

 

7length计算字符串长度

     select length(‘ffm‘) from dual

8initcap(首字母变大写) ,lower(变小写),upper(变大写)

 select lower(‘fFM‘),upper(‘fFM‘),initcap(‘fFM‘) from dual;

 

9,Replace 替换字符

replace将要更改的字符串‘,‘被替换掉的字符串‘,‘替换字符串

   select replace(‘ffm‘,‘m‘,‘1983‘)from dual;

 

10translate替换指定字符串

TRANSLATE(string,from_str,to_str)

TRANSLATE REPLACE所提供的功能的一个超集。返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。如果 from_str to_str长,那么在 from_str中而不在 to_str中的额外字符将从 string中被删除,因为它们没有相应的替换字符。to_str不能为空。

select translate(‘ffm‘,‘m‘,‘1983‘) from dual;

返回结果为:ff1

11lpad [左添充] rpad [右填充](用于控制输出格式)

 select lpad(‘ffm‘,8,‘=‘) s1, rpad(‘ffm‘,8,‘=‘)s2 from dual;

 

--常用数字、数学相关函数

1、取整函数(ceil向上取整,floor向下取整)

   select ceil(66.6) N1,floor(66.6)N2 from dual;

 

2取幂(power)求平方根(sqrt)

   select power(3,2) N1,sqrt(9) N2from dual;

 

3、求余(mod)

   select mod(9,5) from dual;

 

4、返回固定小数位数 (round:四舍五入,trunc:直接截断)

   select round(66.667,2)N1,trunc(66.667,2) N2 from dual;

 

5、返回值的符号(sign正数返回为1,负数为-1)

   select sign(-32),sign(293) fromdual;

 

6、返回x的绝对值ABS(x)         

SELECT ABS(3), ABS(-1) FROM DUAL; 

 

7、返回以x为底y的对数LOG(x,y)

8、返回xy次幂POWER(x,y)

9、返回x的平方根 SQRT(x)

      SELECTLOG(10,100), POWER(3,3), SQRT(4) FROM DUAL;

 

Oracle 常用函数- 字符和数学函数