ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

oracle常用单行函数

2020-05-28 12:01:24  阅读:272  来源: 互联网

标签:函数 单行 参数 emp dual oracle output select


(本文章内容仅在windows10下经测试能够运行,不能保证其他环境下的可靠性)

oracle单行函数:作用于一行,返回一个值

 

字符函数

upper和lower,使用案例代码如下:

---字符函数
----upper(varchar)
----将字符串中小写字母转换为大写
----参数1:一个字符串
select upper('yes') from dual; --output:YES

----lower(varchar)
----将字符串中大写字母转换为小写
----参数1:一个字符串
select lower('Yes') from dual; --output:yes

 

数值函数

round、trunc、mod,使用案例代码如下:

---数值函数
----round(number,[number(n)])函数
----四舍五入取近似值
----参数1:一个数值,要取近似值的数值
----参数2:一个带符号整型数值,可选参数,不给定默认为0,负数表示精确到小数点前几位,正数表示精确到小数点后几位
select round(26.18) from dual; --output:26
select round(26.18,1) from dual; --output:26.2
select round(26.18,-1) from dual; --output:30
select round(56.18,-2) from dual; --output:100

----trunc(number,[number(n)])函数
----截取取近似值
----参数1:一个数值,要取近似值的数值
----参数2:一个带符号整型数值,可选参数,不给定默认为0,负数表示截取到小数点前几位,正数表示截取到小数点后几位
select trunc(26.18) from dual; --output:26
select trunc(26.18,1) from dual; --output:26.1
select trunc(26.18,-1) from dual; --output:20
select trunc(56.18,-2) from dual; --output:0

----mod函数
----求余函数/取模函数
----参数1:被模数
----参数2:模数
select mod(10,3) from dual; --output:1

 

日期函数和变量

months_between函数和sysdate系统时间,使用场景案例代码如下:

---日期函数

---查询emp表每个员工入职天数
select sysdate-e.hiredate from emp e;

----查询一天后的时间
select sysdate+1 from dual; --output:2020/5/29 11:23:16

---查询emp表每个员工入职月数
select months_between(sysdate,e.hiredate) from emp e;
----months_between(date,date)函数
----求两个日期间相隔的月数,结果带符号,以第二个日期参数晚于第一个日期参数为正方向
----参数1:减日期
----参数2:被减日期
select months_between(e.hiredate,sysdate) from emp e;
select months_between(e.hiredate,e.hiredate) from emp e;

---查询emp表每个员工入职周数
select round((sysdate-e.hiredate)/7) from emp e;

---查询emp表每个员工入职年数
select round(months_between(sysdate,e.hiredate)/12) from emp e;

 

转换函数

to_char和to_date,使用案例代码如下:

---转换函数
----to_char(date,varchar)
----日期转换为字符串
----参数1:一个日期类型参数,表示欲转化为字符串的日期
----参数2:一个字符串类型参数,表示日期转化为字符串的格式
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual; --output: 2020-05-28 11:37:03
select to_char(sysdate,'fm yyyy-mm-dd hh:mi:ss') from dual; --output:  2020-5-28 11:37:12
select to_char(sysdate,'fm yyyy-mm-dd hh24:mi:ss') from dual; --output:  2020-5-28 11:37:24

--日期格式占位符
yyyy--四位年份
mm--月份
dd--日期
hh--小时
hh24--24小时制时间
mi--分钟
ss--秒数
fm--不带前导零

---to_date(varchar,varcahr)
----将字符串类型数据转换为日期类型数据
----参数1:欲转换为日期类型的字符串数据
----参数2:日期字符串的格式
select to_date(' 2020-5-28 11:37:24','fm yyyy-mm-dd hh24:mi:ss') from dual; --output:2020/5/28 11:29:54

 

通用函数

nvl函数,使用场景和案例代码如下:

---计算emp每个员工一年的年薪
select e.sal*12+nvl(e.comm,0) from emp e;

---通用函数
---nvl(varchar/null/number,data)
----当参数1为null时返回残数2,否则返回参数1
----参数1:任意类型数据
----残数2:任意类型数据
select nvl(null,sysdate) from dual; --output:2020/5/28 11:45:50
select nvl('null',11) from dual; --output:null(字符串)

 

标签:函数,单行,参数,emp,dual,oracle,output,select
来源: https://www.cnblogs.com/RGBTH/p/12979739.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有