本文共 1678 字,大约阅读时间需要 5 分钟。
函数分为系统内置函数、自定义函数,根据函数的返回结果分为:
单行函数
和组函数
- 单行函数:一条记录返回一个结果
- 组函数(多行函数):多条记录返回一个结果
sysdate|current_date返回当前日期
-- 获取当前日期时间select current_date from dualselect sysdate from dual
运行结果 |
---|
add_months(日期,x):返回加上x月后的日期
-- 当前时间加上2月后的时间select add_months(sysdate,2) from dual
运行结果 |
---|
last_day(日期):返回当前月份的最后一天
-- 本月的最后一天select last_day(sysdate) from dual
运行结果 |
---|
months_between(日期1,日期2):返回日期1和日期2之间相差的月份数量
-- 时间差select months_between(sysdate,sysdate-125) from dual
运行结果 |
---|
Tips:日期可以参与加减运算
next_day(日期,‘x’):返回下一个x的日期
-- 下一个周五select next_day(sysdate,'星期五') from dual
运行结果 |
---|
星期几可以使用数字代替:
1->星期日,2->星期一,3->星期二,4->星期三,5->星期四,6->星期五,7->星期六
to_char(日期,m):把日期转换为m样式的字符串
-- 日期转换为字符串select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual
运行结果 |
---|
Tips: 如果字符串样式里要使用中文,需要给中文加上""
,hh24
代表是24小时制,mi
是分,ss
是秒
刚好和上面的相反,把字符串转换为日期
-- 字符串转换为日期select to_date('2020-3-11','yyyy-mm-dd') from dual
运行结果 |
---|
nvl(参数1,参数2):如果参数1为null,则返回参数2
select ename,nvl(comm,0) from emp
运行结果 |
---|
decode(参数,参数1,参数2,参数3,参数4,…):对参数进行判断,如果参数是参数1,就返回参数2,如果是参数3就返回参数4…
select decode(deptno,10,'十',20,'二十',30,'三十','默认时-四十') from dept
运行结果 |
---|
类似于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
运行结果 |
---|
转载地址:http://jcsnb.baihongyu.com/