Oracle 函数
一 、数字函数
1.ROUND四舍五入运算
round(m):
round(m,n):m 需要调整的数值,n 需要保留的位数
2.TRUNC(m,n):不进行四舍五入,直接截取
3.MOD(m,n)注意:当m,或n为负数时,结果与数学上的经典求模结果不一样
4.CEIL :返回不小于参数的最小值
5.FLOOR :返回不大于该参数的最大值
二、字符函数
1.UPPER:把字符串中的每个单词字母转换成大写
2. LOWER:把字符串中的每个单词字母转换成小写
3.INITCAP :把字符串中的第一个字母转换成大写
4.TRIM/LTRIM/RTRIM :裁剪掉前导/后导/两端的空格字符或指定字符
5.SUBSTR:截取字符串
(1).从字符串左边开始的第3个字符开始截取,长度为5
(2).从字符串右边开始的第2个字符开始截取,长度为3
6.LENGTH 注:Oracle中1个汉字算1个字符,也是使用的unicode编码
(1).得出字符串长度
(2).得到字符串的字节长度
7.REPLACE
(1).REPLACE(src,search) : 把字符串”ABCDEFG字”中的字去掉
(2).REPLACE(src,search,replacement)把字符串中指定的字符删除或者替换成别的字符
8.CONCAT(char1,char2)拼接字符串 注:所有SQL中,+只用于数字
(1).把两个字符串连接到一起
(2).把一个字符串和一个整数连接到一起
(3).拼接还有另外的一个常用方法,在字符串之间使用||连接
三、日期函数
Oracle中,有如下操作是合法的:
日期-日期 = 数字(相差的天数)
日期+数字 = 新的日期(数字指添加的天数)
1.MONTHS_BETEEN(date1,date2)算出两个日期间的的间隔月数
2.NEXT_DAY(date,char):返回当前日期的下一个字符串参数指定的日子,字符串必需表示一周中的某一天,例如:星期一,星期日„„
3.LAST_DAY(date):得到某个日期当月的最后一天的日期
4.ROUND (date,char)
四、转换函数
1.TO_NUMBER(expr,fmt)把字符串按指定格式转换成整数
2.TO_CHAR(number) :把字符串按指定的格式转换($代表美元符号)
L代表系统本地化的货币格式
TO_CHAR(datetime,fmt)把一个日期时间转换成指定的字符串格式
3.TO_DATE :把字符串转换成日期格式
五、其它函数
1.NVL(exp1,exp2) :用于处理null值(nvl=null value),如果exp1的值不为null,则整个表达式的值为exp1的值,否则表达式的值为exp2的值
例子:显示每个员工的年收入(员工comm可能为空,使用NVL进行判断)
2.DECODE :执行类似于switch„case„default的选择逻辑
–示例一:将工作岗位中的ANALYST显示为分析师,SALESMAN显示为销售,MANAGER显示为经理,其余的显示为其他
六、多行函数/聚合函数/分组函数
1.多行函数:一次调用,处理多行数据
AVG:求多行一列的列平均值
–示例:10号部门全部员工平均工资
–示例:每个部门的平均工资
注:分组显示查询时,select子句中只能出现分组表达式和分组函数,除此之外的任何列都是非法的。
2.COUNT
–示例:显示所有员工的数量
–示例:显示奖金的人数
注:COUNT会忽略null行
–示例:显示每个部门的编号,人数
3.MAX:返回多行一列中最大行的值
–示例:求全部员工中工资最大值
4.MIN:返回多行一列中最小行的值
5.SUM:返回多行一列的和
–示例:求平均工资大于2000的部门编号
select deptno,AVG(sal) from emp
where AVG(sal)>2000 group by deptno;
–结论:WHERE子句中禁止出现聚合函数!如需要将聚合函数的结果作为筛选条件,则在HAING子句中声明