1、 单行函数:对所处理的每一个记录都返回一行结果
(1) 大小写转换函数——
ØLOWER()将字母全部变成小写;UPPER()将字母全部变成大写;
ØINITCAP()把每个单词的首字母转换为大写,其余转换为小写。
(2) 字符处理函数——
ØSUBSTR(要提取的字符串,要提取的起始字符位置,查询中要返回的字符串长度)
ØLENGTH(‘’)返回字符串长度
ØLPAD(将填充的字符串,填充之后的字符串长度,用于填充的符号或字符)在左边填充,RPAD 是在右边填充
ØLTRIM(要处理的数据,将从左侧删除的字符串);RTRIM是从右边删除。
ØREPLACE(将搜索的数据或列,想要查找的字符串s,将替换s的字符串)
ØCONCAT(字符串1,字符串2)串联两列数据
(3) 数字函数——
ØROUND(将要舍入的数字数据或字段,应该将数据舍入到得位数)
ØTRUNC(要截断的数字或字段,表示应该对数据进行删除或截断的数字位置)
(4) 日期函数——
ØMONTHS_BETWEEN()用来确定两个日期之间的月数
ØADD_MONTHS(计算的起始日期,要增加的月数)
ØNEXT_DAY(开始日期,将要确定的一周中的某一天)
ØTO_DATE(‘2011.03.10’,’YYYY.MM.10’)对日期进行转换
(5) 其他函数
ØNVL(表示null值,代替它的值)
ØNVL(x,x不是null值时所替换的数据,x是null值时所替换的数据)
ØTO_CHAR(要格式化的日期或数字,使用的格式模型)将日期和数字转化为格式化的字符串,与TO_DATE()相反
ØDECODE(V,L1,R1,L2,R2,…,D)其中V是正搜索的值,L1表示列表中的第一个值,如果L1和V相等,那么R1表示将返回的结果,以此类推,如果没有找到相等的值,那么D是将返回额默认结果。
2、 组函数:也称为”多行函数”,它们处理每一组行并返回一个结果。
AVG()返回某列的平均值、 COUNT()返回满足条件的记录数、 MAX()返回某列中的最大值、 MIN()返回某列中的最小值、 SUM()返回某列所有数值的和 | GROUP BY 子句 1. 如果在select子句中使用一个组函数,那么在select子句中列出的任何单独的列必须在GROUP BY子句中列出。 2. 用来在GROUP BY 子句中分组数据的列不必再select子句中列出 3. 不能在GROUP BY子句中使用列别名。 |
SELECT SUM(SAL),DEPTNO FROM EMP GROUP BY DEPTNO; SELECT DEPTNO,SUM(SAL) FROM EMP GROUP BY DEPTNO HAVING SUM(SAL)>10000; |
3、 如果使用组函数来限制组,那么必须使用HAVING子句,因为WHERE子句中不能包含组函数。组函数只能嵌套两层。同时包含WHERE、GROUP BY及HAVING子句的情况:
SELECT CATEGORY, TO_CHAR(AVG(RETAIL-COST),’999.99’) PROFIT FROM BOOKS WHERE PUBDATE>’01-1月-07’ GROUP BY CATEGORY HAVING AVG(RETAIL-COST)>15; | 注意执行顺序: 1. WHERE 2. GROUP BY 3. HAVING WHERE在分组之前筛选数据,HAVING在分组之后筛选数据 |