一、数字函数
--1.返回x的绝对值abs(x) select abs(-2) from dual; --2.返回大于等于x的最小整数值ceil(x) --3.返回小于等于x的最小整数值floor(x) --4.返回x的y次幂power(x,y) --5.返回x除以y的余数mod(x,y) --6.返回x四舍五入后的值round(x[,y]),y为保留的小数位,不写的话默认保存整数 select round(3.36,1) from dual; --7.返回x的平方根sqrt(x) --8.trunc(x[,y]):返回x按精度y截取后的值,y可写可不写。 --y为正,表示保留的小数位数;y为负,小数点左边y位变成0;y为0或不写取整。 select trunc(88345.937233, -5) from dual; 二、字符函数 --1.将数字转换成字符chr(x) --2.将字符转换成数字ascii(x) --3.连接字符串concat(x,y)。oracle中的concat函数只能指定两个字符串的连接,mysql中无限制 select concat(concat('%','aaa'),'%') from dual; --4.删除左边空格ltrim(x) --5.删除右边空格rtrim(x) --6.删除两边空格trim(x) --7.转换成大写upper(x) --8.转换成小写lower(x) --9.替换replace(str,search_str[,replace_str]) --将str字符串中的search_str子字符串替换成replace_str,replace_str可写可不写 select replace('abcdefghijk','def','kkkk') from dual; --abckkkkghijk --10.替换translate,和replace相同,但比replace强大。多个同样的值只有写一次 select translate('abcdefghidk','def','#@') from dual; --abc#@ghi#k --(d将被#替代,e将被@替代,f对应的值是空值,将被移走) --如果替换的字符长度大于被替换的字符,多余部分被忽略 --11.rpad(str1,x[,str2]):填充/截取到x个长度,不足的话右边用指定字符填充 select rpad('abcde',10,'wqe') from dual; --abcdewqewq --12.lpad(str1,x[,str2])填充/截取到x个长度,不足的话左边用指定字符填充 select lpad('abcde',10,'wqe') from dual; --wqewqabcde --13.substr(str,x[,y]):截取从x的位置开始长度为y的子字符串 select substr('abcdefgh',3,6) from dual; --14.求字符串的长度length(str)三、转换函数 --decode(),将查询结果翻译成其他值(即以其他形式表现出来) --decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) select decode(4-2,1,'a',2,'b') from dual;四、空值函数 --1.nvl(x1,x2) --x1为null,返回x2; 不为null,返回x1。注意两者的类型要一致 select nvl(0,11) from dual; --2.nvl2(x1,x2,x3) --x1不为null,返回x2; 为null,返回x3。x2和x3类型不同的话,x3会转换为x2的类型 select nvl2(null,33,22) from dual; --3.nullif(x1,x2) --x1和x2相等返回null,不等则返回x1 select nullif(45,45) from dual;