您的位置:首页 > 博客中心 > 数据库 >

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

时间:2022-03-14 04:49

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

--常用字符相关函数

1、substr 字符串截取

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

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

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

 

2、 instr 查找子串位置

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

返回第一个子串的位置。

 

3、|| 字符串连接

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

 

4、trim 对字符串两边的处理

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

 

6、chr 返回ascii值对应的字母

   select chr(97) from dual

 

7、length 计算字符串长度

     select length(‘ffm‘) from dual

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

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

 

9,Replace 替换字符

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

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

 

10、translate 替换指定字符串

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

11、lpad [左添充] 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、返回x的y次幂POWER(x,y)

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

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

 

热门排行

今日推荐

热门手游