--字符函数
replace(char1,search_string,replace_string);
eg: select replace(name,'tom','我是tom');
--数学函数(除了聚合函数以外)
case when then else end;
nvl()//null值处理
nvl2()//类似三目运算符操作
round(n,[m]) //保留几位小数,四舍五入
trunc(n,[m]) //保留几位小数,直接舍弃不进行四舍五入
mod(m,n) //取余
floor(n) //向下取整
ceil(n) //向上取整
abs(n) 返回数字n的绝对值
acos(n) :返回数字的反余旋值
asin(n): 返回数字的反正旋值
atan(n): 返回数字的反正切
cos(n)
exp(n): 返回e的n次幂
log(m,n)返回对数值
power(m,n):返回m的n次幂
eg: select round(12.343,2) from dual;->> 12.34
select round(13.345,2) from dual;->> 12.35
select trunc(12.343,2) from dual;->> 12.34
select trunc(13.345,2) from dual;->> 13.34
select mod(12/5) from dual;->> 7
select floor(12.34) from dual;->> 12
select floor(12.36) from dual;->> 12
select ceil(12.34) from dual;->> 13
select ceil(12.36) from dual;->> 13
select nvl(comm,0) from emp;// 判断如果comme的值为null则comm的值覆盖为0
select nvl2(comm,1200,1000) from emp;// 如果 comm>1200 为真则值为1200否则值为1000
CASE WHEN sc.scorenumber >= 80 THEN 1 ELSE NULL END // 但 值大于 80 则为1 否则为 null
--日期函数
sysdate: 该函数返回系统时间
add_months(d,n);在指定时间上偏移几个月
last_day(d):返回指定日期所在月份的最后一天
months_between(date1,date2); 计算两个时间间隔多少个月
--转换函数
to_char();
yy: 两位数字的年份 2004-->04
yyyy: 四位数字的年份 2004年
mm :两位数字的月份 8月-->08
dd: 2位数字的天 30号-->30
hh24: 8点-->20
hh12: 8点-->08
mi、ss -->显示分钟\秒
9:显示数字,并忽略前面0
0:显示数字,如位数不足,则用0补齐
.:在指定位置显示小数点
,: 在指定位置显示逗号
$: 在数字前加美元
L: 在数字前加本地货币符号
C: 在数字前加国际货币符号
G:在指定位置显示组分隔符、
D:在指定位置显示小数点符号(.)
to_date();
eg: 显示所有12月份入职的员工
select * from emp where to_char(HIREDATE,'mm') = 12;
SELECT TO_CHAR(SAL,'L999G99D99') FROM EMP;