在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;