在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') fromdual ; select trim(trailing 'f' from'ffmmff') fromdual ; select trim(both 'f' from 'ffmmff')fromdual ; 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(变大写) selectlower('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') fromdual; 返回结果为: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 fromdual; 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) N2from 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) FROMDUAL; |