您的位置:首页 > 数据库 > Oracle

oracle单行函数总结

2015-07-06 14:45 453 查看
单行函数的分类:

1.      
字符函数

用于处理字符相关的业务

replace:select replace(ename,'A','中国')from emp;

 

instr:

查询出oracle traning第二个ra出现的位置:

select instr('oracle traing','ra',1,2)from dual;

 

ascii:返回与指定的字符对应的十进制数

 

chr:给出整数,返回对应的字符

 

 

concat:连接两个字符串:select
concat(ename,
好搞笑)from emp;

该函数和 || 的作用是一样的:select ename ||
好搞笑 from emp;

 

initcap:将字符串的第一个字母变为大写

 

length:返回字符串的长度:select ename from emp where
length(ename)=4;


 

lower(把所有字符都小写)和upper(把所有字符都大写)函数:

  
案例:把雇员的名字分别用大写和小写显示出来:

select lower(ename),upper(ename)from emp;

案例2:把雇员的名字,首字母小写,其他字母大写:

   select
lower(substr(ename,1,1)) || upper(substr(ename,2,length(ename)-1))
from emp;


lpad(左填充)和rpad(右填充):

select rpad(ename,30,*),sal
from emp; :
表示ename用3

0个字符显示,不够的用*填充

 

ltrim和rtrim的用法:select rtim(gao qian
jingaaaa
,a)from
dual


返回来的结果是‘gao qian jing jing’;就是把右边的a全部删除

 

trim函数:去掉指定字符串或数字前后的某些字符

 

ceil函数  用于向上取整:select ceil(23.04)from
dual;返回24


 

floor函数:用于向下取整

 

exp:返回一个数的e次方根:select exp(2)from
dual;返回7.38905609


 

mod函数  取模(余数):select mod(5,3)from
dual  返回2


 

round函数,用于四舍五入

 

trunc函数,用于截取小数(此函数没有指定取到几位,默认截取到整数,可以指定截取到小数第几位,如果截取到小数点前面的数字,则被截取的那个数字会用0来代替)

select  trunc(54.25524552,5)from
dual   返回54.25524


select  trunc(54.25524552,-1)from
dual   返回50


 

sign:取数字n的符号,大于0返回1,小于0返回-1,等于0返回0:select sign(-8)from
dual


 

add_months(日期值,增加的月份)函数:把月份加上几个月:select
add_months(hiredate,2)from emp;


 

sysdate函数:获取系统的当前时间

只获取日期:select  sysdate 
from  dual


获取日期与具体的时间select
to_char(sysdate,
yyyy-mm-dd:hh24:mi:ss)from
dual;


 

last_day函数:返回日期的最后一天:select last_day(sysdate)from
dual;


 

next_date(day,day):用于返回离sysdate最近的星期几是几号

 

to_char(number/date/char):

 转换日期:1999-11-11 12:12:12
显示日期


to_char 可以有选择的显示:

比如,查询出1981年入职的员工:

select ename,job,sal from emp where
to_char(hiredate,'yyyy')='1981';

select
to_char(sysdate,
yyyy-mm-dd:hh24:mi:ss)from
dual;


按照货币格式显示工资:select to_char(sal,'L999G999D99')from
emp;:L代表货币符号,G代表两位数分一组,D表示保留两位小数

 

to_number:将字符转换为数字

 

decode:根据不同的情况显示不同的信息(有点像switch语句):

select decode(deptno,10,'10哈哈',20,'20呵呵',30,'30嘻嘻')from emp;

 

 

avg(distinct sal):不会对相同的值进行统计;该函数默认是all
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: