oracle常用单行函数

(本文章内容仅在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每个员工一年的年薪
---null值与任何数值作算术运算,结果均为null
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(字符串)

相关推荐