oracle 函数 disk,Oracle中的单值函数

Oracle的函数

Oracle函数可以分为单值函数和分组函数两大类,单值函数又分为字符函数、日期和时间函数、数字函数、转换函数和混合函数:分组函数右count、max、min、avg、sum,都可以和group by搭配使用。

单值函数

1、字符函数

l字符串连接函数

问题:把员工的姓名和工作类型连在一起使用"-"分隔

函数:concat(字符串1,字符串2)

select concat(concat(ename,'-'),job) from

emp;

扩展点:字符串连接符号" || "

select ename || '-' || job from emp;

l右对齐函数

问题:将员工的姓名右对齐显示

函数:lpad(待处理的字符串,预留位置,填充符号)

select lpad(ename,10,' ') from emp;

l字符串截取函数

问题:截取员工姓名的前3个字符和字符4以后的内容显示

函数:substr(字符串,起始位置,截取的个数)

substr(字符串,起始位置)--默认截取到最后

select ename,

substr(ename,1,3),substr(ename,4) from emp;

l字符查找函数

问题:字母'T'在员工姓名中第一次出现和第二次出现的位置

函数:instr(字符串,查找的字符,查找的起始位置,出现的次数)

select ename, instr(ename,'T',1,1) as A,

instr(ename,'T',1,2) as B from emp;

扩展:员工姓名中不含

M

的员工

select ename from emp where

instr(ename,'M',1,1)=0

l

首字母大写函数

问题:员工姓名首字母大写显示

函数:initcap(字符串)

select initcap(ename) from emp;

l

/

大写函数

问题:将员工姓名大写转换

函数:upper(字符串)/lower(字符串)

select upper(ename) , lower(ename) from

emp;

l

字符串替换函数

问题:将姓名中的M全部替换成'*'显示

函数:replace(字符串,带替换的字符,替换后的字符)

select replace(ename,'M','*') from emp;

l字符串长度函数

问题:找出姓名长度大于5的员工姓名

函数:length(字符串)

select ename from emp where

length(ename)>5;

2、日期函数

l系统时间

问题:返回系统的当前时间

函数:sysdate

说明:1、函数没有“( )”

2、dual是一张无意义的表,在Oracle专门用于函数的测试

select sysdate from dual;

使用一个

to_char,

转换函数类型

将时间类型转成字符类型

函数:to_char(时间数据,格式)

select to_char(sysdate,'yyyy-mm-dd

hh:mi:ss') from dual;

格式:yyyy年

mm月

dd日期

d一周中的第几天

ddd一年中的第几天

day周

month月份

hh24 24小时制

l日期修改函数

问题:将系统时间添加2个月显示

函数:add_months(时间数据,添加的月份)

select add_months(sysdate,2) from dual;

l日期差函数

问题:显示员工入职时间的月份统计

函数:months_between(时间1,时间2)

select

ename,hiredate,months_between(sysdate,hiredate) from emp;

3、转换函数

lto_char()见上例

l时间转换函数

函数:to_date(时间数据字符串,格式)

insert into表名values(to_date('2009-12-12','yyyy-mm-dd'));

案例1:查询在12年前参加工作的员工

Select

ename,hiredate from emp where months_between(sysdate,hiredate)>144

案例2:查询在当月倒数第三天参加工作的员工

函数:last_day(时间数据)->返回该日期所在月份的最后一天

select ename,hiredate from emp where

last_day(hiredate)-2 = hiredate;

案例3:查询每个员工的工作天数

格式:时间1-时间2 -->返回相差的天数

select ename,hiredate,sysdate-hiredate

from emp;

4、数学函数

lround(数字)四舍五入

案例:按每月30天计算员工的每日薪水,要求计算结果四舍五入到小数点后2位

函数:round(数字,精度)

select ename,round(sal/30,2) from emp;

ltrunc(数字)取整函数->只保留整数部分

案例:查询员工工作了多少个月

select ename,trunc(months_between(sysdate,hiredate)) from emp;

lfloor(数字)向下取

floor(1.9)-> 1

lceil(数字)向上取

ceil(1.1) -> 2花费

labs(数字)取绝对值函数

lmod(数字1,数字2)取余函数

mod(5,4) -> 1

lpower(数字,n次方)

power(2,4) -> 16

作者:中软卓越天津ETC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值