sql语言中的函数有两种,一种是单行函数,一种是多行函数
一 单行函数
1.单行函数特点
a.只对一行数据进行变换
b.每行只返回一个结果
2.单行函数的种类
a.字符型函数
字符函数主要是操作字符的函数,有大小写控制函数和字符控制函数
例: lower('Sql') ------------------------------------>sql 全部变成小写
substr('helloworld',1,5)---------------------------->hello
b.数值函数
数值函数操作数据,数据的四舍五入,取余等等
round(23.678,2)------------------------------------->23.69
trunc(23.678,2)------------------------------------->23.67 直接截断,不四舍五入
mod(1300,200)-------------------------------------->100 取余数
c.日期函数
(1)oracle日期的格式
oracle中日期型数据包含两个值,日期和时间
oracle默认的日期的格式是:DD-MON-RR
返回当前日期的函数:sysdate
(2)日期之间的加减
在日期上加上和减去一个数字(单位为天)仍为一个日期
两个日期的相减返回两个日期之间差的天数
(3)日期函数
日期函数也可以使用截断或者四舍五入函数
next_day ----指定日期的下一个日期
last_day----本月的最后一天
..................................................
例:对日期的截断
sysdate='21-6月-16'
round(sysdate,'year')-----01-1月-16
tranc(sysdate,'year')------01-1月-16
round(sysdate,'month')-----01-7月-16
tranc(sysdate,'year')------01-6月-16
d.转换函数
转换函数主要是对其数据类型的转换
数据类型的转换分为两种,一种是隐式转换,另一种是显示转换
(1)隐式转换
原数据 | 目标数据 |
Varchar2 or char | number |
Varchar2 or char | date |
number | Varchar2 |
Date | Varchar2 |
(2)显示转换
例 to_char函数,对日期的转换
to_char(date,'formal')
formal要注意的问题:
1.必须在单引号中,日期大小写敏感
2.可以包含任何有效的日期格式
3.日期之间用逗号隔开
to_date()
e.通用函数
这些函数可以用于任何数据类型,null也可以使用。
所有的单行函数都可以嵌套,执行顺序是由里到外。
二.多行函数
多行函数是应用于多行数据,只返回一个值
例:avg(distinct |all <列名>)
注意:多行函数忽略空值,如果想把空值也计算进去,则使用nvl函数处理