oracle数据库单行函数

该博客详细介绍了数据库中的多种函数,包括字符、数值、日期时间、转换、通用、条件表达式和嵌套函数等。每种函数都有常用类型说明,并配有丰富实例,如日期时间函数可用于计算员工入职时长、查询特定日期等,帮助读者掌握函数在实际查询中的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.字符函数

1.常用字符函数

在这里插入图片描述

2.大小写控制函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mhtiXmvt-1622621438268)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\1581125585759.png)]

2.数值函数

2.1常用数值函数

在这里插入图片描述

2.2四舍五入-- round

在这里插入图片描述

2.3 截取 – trunc

2.4取余数-- mod

在这里插入图片描述

2.5实例

------------------常用数值函数------------------------
– 四舍五入函数round 查询日薪并四舍五入到小数点后2位
select empno, ename, round(sal/30,2) from emp;
– 截断函数trunc 查询日薪并截取到小数后2位
select empno, ename, trunc(sal/30,2) from emp;
– 求余函数mod 查询编号为偶数的员工
select * from emp where mod(empno,2)=0;

3.日期时间函数

3.1常用日期时间函数

在这里插入图片描述

3.2日期时间函数-- sysdate

在这里插入图片描述

3.3日期时间函数-- months_between

在这里插入图片描述

3.4日期时间函数–add_months

在这里插入图片描述

3.5日期时间函数–next_day

在这里插入图片描述

3.6日期时间函数–last_day

在这里插入图片描述

3.7日期时间函数–round

在这里插入图片描述

3.8日期时间函数–trunc

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GQXA0f7y-1622621438284)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\1581300506089.png)]

实例

-----------------日期时间函数---------------------
– sysdate 查询系统当前时间前一天,现在时间,后一天
select sysdate-1, sysdate, sysdate from dual;
– months_between 计算员工入职多长时间并四舍五入到天
select empno, ename, round(months_between(sysdate,hiredate)) from emp where empno = 7369;
– months_between 计算员工入职多长时间并四舍五入到月
select empno, ename, round(months_between(sysdate,hiredate)/12) from emp where empno = 7369;
– add_months 查询每位员工入职30年之后的年份
select empno, ename, add_months(hiredate,30*12) from emp;
– next_day 查询下周一的日期
select next_day(sysdate,‘星期一’) from dual;
– last_day 查询当前月最后一天
select last_day(sysdate) from emp;
– round 四舍五入查询离职日期年月
select hiredate, round(hiredate,‘year’), round(hiredate,‘month’) from emp;
– trunc 截取离职日期年月
select hiredate, trunc(hiredate,‘year’), trunc(hiredate,‘month’) from emp;

3.9获取系统日期处理

​ 当前日期:sysdate

​ 当前日期前一天:sysdate - interval’1’ day

4.转换函数

4.1自动转换的数据类型

在这里插入图片描述

4.2数据转换图解

在这里插入图片描述

4.3 日期转字符–to_char

4.3数字转字符–to_char

4.4转日期–to_date

在这里插入图片描述

4.5转数据–to_number

在这里插入图片描述

实例

-----------------------转换函数------------------------------------
– 日期转字符串to_char 查询离职日期按指定格式输出
select ename, to_char(hiredate,‘YYYY-MM-DD’) from emp;
select ename, to_char(hiredate,‘yyyy-mm-dd’) from emp;
select ename, hiredate, to_char(hiredate,‘yyyy"年"mm"月"dd"日"’) from emp;
select ename, hiredate, to_char(hiredate,‘DD-MON-RR’,‘NLS_DATE_LANGUAGE=AMERICAN’) FROM EMP;
– 数字转字符to_char 将数值转成字符
select ename, to_char(sal,‘L999,999,999,99’) from emp;
select ename, to_char(sal,’$999,999,999,99’) from emp;
select ename, to_char(sal,‘L000,000,000,00’) from emp;
select ename, to_char(sal,’$000,000,000,00’) from emp;
– 转日期to_date 查询1982年之后入职的员工信息
select ename, hiredate from emp where hiredate > to_date(‘1981-12-31’,‘yyyy-mm-dd’);
select * from emp ;
– 转数字to_number
select ename, sal from emp where sal > to_number(‘¥1600’,‘L9999999999999’);
select ename, sal from emp where sal > to_number(’$1600’,’$999999999999’);

5.通用函数

5.1常用的通用函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k0YCQRjS-1622621438290)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\1581419980489.png)]

5.2处理null

5.2 nvl

5.3 nvl2

在这里插入图片描述

5.4 nullif

在这里插入图片描述

5.5 coalesce

在这里插入图片描述

实例

--------------------通用函数----------------------
– nvl 处理null
select ename, sal, comm, nvl(sal+comm, sal) from emp;
– nvl2 处理null
select ename, sal, comm, nvl2(comm,sal+comm,sal) from emp;
– nullif 查询所有员工入职日期,并把本月初入职的员工与其他员工进行区分
select ename, hiredate, nullif(hiredate, trunc(sysdate,‘month’)) from emp;
– coalesce 查询工资加补助在一起的结果,补助为null,就显示工资
select ename, sal, comm, coalesce(sal+comm,sal) from emp;

6.条件表达式

6.1常用的条件表达式

在这里插入图片描述

6.2 表达式–case

在这里插入图片描述

6.3 表达式–decode

在这里插入图片描述

实例

------------------条件表达式--------------------
– case表达式
– 想要显示全部雇员的职位,但是这些职位要求替换为中文显示
– clark:办事员 salesman:销售 manager:经理 analyst:分析员 president:总裁
select ename,
case job
when ‘CLARK’ then ‘办事员’
when ‘SALESMAN’ then ‘销售’
when ‘MANAGER’ then ‘经理’
when ‘ANALYST’ then ‘分析员’
ELSE ‘总裁’
end
from emp;
– decode表达式
– 想要显示全部雇员的职位,但是这些职位要求替换为中文显示
– clark:办事员 salesman:销售 manager:经理 analyst:分析员 president:总裁
select ename, decode(job, ‘CLARK’,‘办事员’, ‘SALESMAN’,‘销售’, ‘MANGER’,‘经理’, ‘ANALYST’,‘分析员’, ‘总裁’) from emp;
– 查询工资范围
select ename,sal,
case
when sal < 2000 then ‘低工资’
when sal < 5000 then ‘中工资’
else ‘高工资’
end
from emp;

7.嵌套函数

7.1嵌套函数的定义

在这里插入图片描述

7.2需求一

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WgnN1opL-1622621438297)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\1581645144805.png)]

7.3需求二

在这里插入图片描述

7.4实例

------------------------嵌套函数-----------------------
– 想要显示距离聘用日期三个月后的下一个星期一的日期,且日期格式为:2017-01-06
select ename, hiredate,to_char(hiredate,‘YYYY-MM-DD’), to_char(next_day(add_months(hiredate,3),‘星期一’),‘YYYY-MM-DD’) from emp ;
– 显示雇员日薪并四舍五入到2位小数的结果,然后对薪资格式以’¥1,182.19’这样的例子形式进行格式化

– 想要显示距离聘用日期三个月后的下一个星期一的日期,且日期格式为:2017-01-06
select ename, hiredate,to_char(hiredate,‘YYYY-MM-DD’), to_char(next_day(add_months(hiredate,3),‘星期一’),‘YYYY-MM-DD’) from emp ;
– 显示雇员日薪并四舍五入到2位小数的结果,然后对薪资格式以’¥1,182.19’这样的例子形式进行格式化
select ename, sal, to_char(round(sal/30,2),‘L999,999.99’) from emp;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值