Oracle常用函数
一、trunc函数,可以操作日期时间也可以操作数字值
数据库日期时间操作:
1.select trunc(sysdate) from dual --2011-3-18 2011-3-18
2.select trunc(sysdate, ‘mm’) from dual --2011-3-1 返回当月第一天.
3.select trunc(sysdate,‘yy’) from dual --2011-1-1 返回当年第一天
4.select trunc(sysdate,‘dd’) from dual --2011-3-18 返回当前年月日
5.select trunc(sysdate,‘yyyy’) from dual --2011-1-1 返回当年第一天
6.select trunc(sysdate,‘d’) from dual --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, ‘hh’) from dual --2011-3-18 14:00:00 当前时间为14:41
8.select trunc(sysdate, ‘mi’) from dual --2011-3-18 14:41:00 TRUNC()函数没有秒的精确
数据库数字值操作:
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为0。
TRUNC()函数截取时不进行四舍五入。
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120
二、decode函数
decode(值表达式,值1,返回值1,…,值n,返回值n,其他值):
若值表达式的值为"值1",则返回"返回值1",…,若为"值n",返回"返回值n",否则返回"其他值";
常见用法:decode(值表达式,值1,值2,值3)–》若值表达式的值为值1,则返回值2,否则返回值3;
三、nvl函数
nvl(value1,value2):若value1为null则返回value2,否则返回 value1(要求value1与value2类型相同);
四、nvl2函数
nvl2(value1,value2,value3):若value1为null则返回value3,否则返回value2(value2、value3可以是除LONG类型之外的所有类型),因此nvl2函数功能相比nvl更加强大;
五、case when表达式,主要介绍作为字段的用法,在SQL语句其他部分写法差别不大,灵活运用即可
select (case when 条件表达式1 then value1 … when 条件表达式n then value(n) else value(n+1) end) as 字段名称
上面条件表达式可以是复合条件表达式,比如使用and、or连接的多条件表达式,书写的时候注意各个条件表达式之间应该是互斥的。