|---常用的函数
函数可以分为单行函数和多行函数
单行函数分为:
|--字符函数:由于处理字符相关的业务
(1) replace(ename,'A',"char");该函数不是真正替换字符,只是在显示的时候替换
(2)instr('oracle traing','ra',1,2);查找tr所在的位置
(3)AsCll 返回与指定的字符对应的十进制数
(4)CONCAT用于连接字符串,该函数与||作用相同
(5)initcap返回字符串并将第一个字母大写。
(6)length返回字符串的长度,在oracle一个中文的长度是1;
(7)LOWER返回一个字符,将所有的字符小写
(8)UPPER返回一个字符,将所有的字符小写
(9)SUBSTR取子字节串,从start开始,count个字符。
(10)convert(c,desc,sset)将一个语言的自字符集,转换为另一个字符集
(10)RPAD和LPAD粘贴字符
(11)LTRIM('ammm‘,'a)除左边的a字符,RRIM('mma,'a)除右边的a字符
|---数值函数
(10)ceil函数向上取整。
select ceil(23.6) from dual
查询到的结果为:24
(11)floor函数向下取整
select floor(23.6) from dual
查询到的结果为:24
(12)mod函数,取模
(13)round函数,用于四舍五入
(14)trunc函数,默认截取一个整数
select trunc(456.2356,2) from dual;
---->456.23
(15)to_number()将字符串转化为数字
|---日期函数
(15)to_date(String,"format")
|--将字符串转化oracle的一个日期
insert into emp(empno,hiredate) values(2222,to_date('1988-11-11','yyyy-mm-dd'));
(16)add_months(日期值,增加的月份)
(17)SysDate 获得系统当前时间
?注解:查询近三个月入职的员工
select * from emp add_months(hireDate,3) >= SYSDATE;
SELECT * FROM EMP hireDate >= add_months(sysdate,-3);
(18)last_day返回日期的最后一天
(19)MONTHS_BETWEN(date1,date2) 返回date1到date2的月份
(20)NEXT_DAY(date1,week) 用于返回离date最近的日期
(21)to_char(date/number/char,format)将日期转换为format的字符串
?注解:请将雇员的名字,首字母小写,其他大写
select lower(substr(ename,1,1))
||upper(substr(ename,2,length(ename)-1))
from emp;
?注解:使用子查询完成行迁移
create temp# as select empno,ename from emp where ename like 'S%';
?注解:使用子查询完成更新
例:希望员工scott的岗位,工资,补助与smith员工一样
update emp set (job,sal,comm) =(select job,sal,comm from emp where ename like 'SMATH') where ename = 'SCOTT';
函数可以分为单行函数和多行函数
单行函数分为:
|--字符函数:由于处理字符相关的业务
(1) replace(ename,'A',"char");该函数不是真正替换字符,只是在显示的时候替换
(2)instr('oracle traing','ra',1,2);查找tr所在的位置
(3)AsCll 返回与指定的字符对应的十进制数
(4)CONCAT用于连接字符串,该函数与||作用相同
(5)initcap返回字符串并将第一个字母大写。
(6)length返回字符串的长度,在oracle一个中文的长度是1;
(7)LOWER返回一个字符,将所有的字符小写
(8)UPPER返回一个字符,将所有的字符小写
(9)SUBSTR取子字节串,从start开始,count个字符。
(10)convert(c,desc,sset)将一个语言的自字符集,转换为另一个字符集
(10)RPAD和LPAD粘贴字符
(11)LTRIM('ammm‘,'a)除左边的a字符,RRIM('mma,'a)除右边的a字符
|---数值函数
(10)ceil函数向上取整。
select ceil(23.6) from dual
查询到的结果为:24
(11)floor函数向下取整
select floor(23.6) from dual
查询到的结果为:24
(12)mod函数,取模
(13)round函数,用于四舍五入
(14)trunc函数,默认截取一个整数
select trunc(456.2356,2) from dual;
---->456.23
(15)to_number()将字符串转化为数字
|---日期函数
(15)to_date(String,"format")
|--将字符串转化oracle的一个日期
insert into emp(empno,hiredate) values(2222,to_date('1988-11-11','yyyy-mm-dd'));
(16)add_months(日期值,增加的月份)
(17)SysDate 获得系统当前时间
?注解:查询近三个月入职的员工
select * from emp add_months(hireDate,3) >= SYSDATE;
SELECT * FROM EMP hireDate >= add_months(sysdate,-3);
(18)last_day返回日期的最后一天
(19)MONTHS_BETWEN(date1,date2) 返回date1到date2的月份
(20)NEXT_DAY(date1,week) 用于返回离date最近的日期
(21)to_char(date/number/char,format)将日期转换为format的字符串
?注解:请将雇员的名字,首字母小写,其他大写
select lower(substr(ename,1,1))
||upper(substr(ename,2,length(ename)-1))
from emp;
?注解:使用子查询完成行迁移
create temp# as select empno,ename from emp where ename like 'S%';
?注解:使用子查询完成更新
例:希望员工scott的岗位,工资,补助与smith员工一样
update emp set (job,sal,comm) =(select job,sal,comm from emp where ename like 'SMATH') where ename = 'SCOTT';