一、数字函数
--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‘,[email protected]) from dual; [email protected]#k
--(d将被#替代,[email protected],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;
原文:https://www.cnblogs.com/demonzql/p/10587429.html