Oracle数据库-单行函数和组函数

函数分为系统内置函数、自定义函数,根据函数的返回结果分为:单行函数组函数

  • 单行函数:一条记录返回一个结果
  • 组函数(多行函数):多条记录返回一个结果

一、单行函数

1、日期函数

1.1、sysdate|current_date函数

sysdate|current_date返回当前日期

-- 获取当前日期时间
select current_date from dual
select sysdate from dual
运行结果
在这里插入图片描述

1.2、add_months函数

add_months(日期,x):返回加上x月后的日期

-- 当前时间加上2月后的时间
select add_months(sysdate,2) from dual
运行结果
在这里插入图片描述

1.3、last_day函数

last_day(日期):返回当前月份的最后一天

-- 本月的最后一天
select last_day(sysdate) from dual
运行结果
在这里插入图片描述

1.4、months_between函数

months_between(日期1,日期2):返回日期1和日期2之间相差的月份数量

-- 时间差
select months_between(sysdate,sysdate-125) from dual
运行结果

Tips:日期可以参与加减运算

1.5、next_day函数

next_day(日期,‘x’):返回下一个x的日期

-- 下一个周五
select next_day(sysdate,'星期五') from dual
运行结果
在这里插入图片描述

星期几可以使用数字代替:

1->星期日,2->星期一,3->星期二,4->星期三,5->星期四,6->星期五,7->星期六

2、日期转换函数

2.1、to_char函数

to_char(日期,m):把日期转换为m样式的字符串

-- 日期转换为字符串
select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual
运行结果
在这里插入图片描述

Tips: 如果字符串样式里要使用中文,需要给中文加上"",hh24代表是24小时制,mi是分,ss是秒

2.2、to_date函数

刚好和上面的相反,把字符串转换为日期

-- 字符串转换为日期
select to_date('2020-3-11','yyyy-mm-dd') from dual
运行结果
在这里插入图片描述

3、其它函数

3.1、nvl

nvl(参数1,参数2):如果参数1为null,则返回参数2

select ename,nvl(comm,0) from emp
运行结果
在这里插入图片描述

3.2、decode

decode(参数,参数1,参数2,参数3,参数4,…):对参数进行判断,如果参数是参数1,就返回参数2,如果是参数3就返回参数4…

select decode(deptno,10,'十',20,'二十',30,'三十','默认时-四十') from dept
运行结果
在这里插入图片描述

3.2、case when then else end

类似于java的switch选择语句

select case deptno
         when 10 then
          '十'
         when 20 then
          '二十'
         when 30 then
          '三十'
         else
          ' 默认四十'
       end
  from dept

运行结果
在这里插入图片描述

二、组函数

常用的组函数:count、max、min、sum、avg

  • count:记录数量统计
  • max:最大值
  • min:最小值
  • sum:求和
  • avg:平均值

Tips:组函数仅在选择列表和having子句中有效,出现组函数,select中只能有组函数或者分组字段

select count(ename) 员工数量,max(sal) 最高工资,min(sal) 最低工资,sum(sal) 工资总和,avg(sal) 平均工资 from emp
运行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Asdzxc968/article/details/104803954