1. 介绍
根据函数返回结果,氛围单行函数和多行函数
1.单行函数:对应在表记录时,一条记录返回一个结果。例如lower(x),将x转换为小写。
2.多行函数:也称 组函数 或 聚合函数,可以同时对多条记录进行操作,返回一个结果。如max(x),求最大值。
2. 常用单行函数
2.1 字符函数
- concat(x,y):连接字符串x和y
(区分于连接符 ||:连接符得到的是伪列) - instr(x,str,start,n):在x中查找str,可以指定从start开始,也可以指定从第n个str开始
如 在“helloworld”中找第二个l:
select instr('helloworld','l',1,2) from dual;
- length(x):返回x的长度。
- lower(x):将x转换为小写。
- upper(x):将x转换为大写。
- ltrim(x,trim_str):截去x左边trim_str字符串,缺省截去空格。
- rtrim(x,trim_str):截去x右边trim_str字符串,缺省截去空格。
- replace(x,old,new):在x中用new替换所有old
- substr(x,start,length):在x中,从start处开始截取length个字符,返回截取的字符串。若缺省length,默认到结尾
2.2 数学函数
- abs(x):返回x的绝对值。
- sign(x):返回x的正负值,正值返回1,负值返回-1,0返回0。
- ceil(x):向上取整。
- floor(x):向下取整。
- power(x,y):返回x的y次幂。
- exp(y):返回e的y次幂。
- mod(x,y):返回x除以y的余数。
2.3日期函数
- sysdate:当前系统时间
- current_date:返回当前系统日期
- add_months(d1,n1):返回在日期d1基础上再加n1个月后的日期
last_day(d1):返回日期d1所在月份最后一天的日期 - months_between(d1,d2):返回日期d1到日期d2之间的月数
- next_day(d1[,c1]):返回日期d1在下周,星期几(c1)的日期
2.4转换函数
- to_char(x,c):将日期或数据x按照c的格式转换为char类型
如:
select to_char(sysdate,'mm/dd/yyyy') from dual;
select to_char(sysdate,'mm "月" dd"日" yyyy"年") from dual;
中文要用双引号(En)
- to_date(x,c):将字符串x按照c的格式转换为日期
- to_number(x):将字符串x转化为数字型
3. 常用组函数
组函数同时对多条记录进行操作,返回一个结果
- avg():平均值
- sum():求和
- min():最小值
- max():最大值
- count():统计
ps:null不参与运算
4. group by分组
将满足条件的记录进一步按照某特性进行分组,提取每组记录中的共性。
结构:
select ... from ... where ... group by ...
5. having过滤组信息
要获取的组信息也许要满足一定条件时,通过having来过滤组的条件
结构:
select ... from ... where ... group by ... having ...
6. 过滤行记录和组信息
行记录的过滤是针对每条记录的筛选,组信息的过滤是针对组的筛选,可同时出现,先筛选行,再过滤组。
where筛选行,只出现行信息
having过滤组,只出现组信息
结构:
select ... from ... where ... group by ... having ...