您的位置:首页 > 数据库 > Oracle

Oracle中常用的函数

2013-10-17 10:34 232 查看

单行函数

数字函数

ROUND四舍五入运算

1. ROUND(m)

2. ROUND(m,n)

TRUNC(m,n)不进行四舍五入,直接截取

MOD(m,n)注意:当m,或n为负数时,结果与数学上的经典求模结果不一样

如果被求模数为负数,与数学上的经典求模的区别

如果被求模数为负数时,数学经典求模公式为:

CEIL(天花板)返回不小于参数的最小值

FLOOR(地板)返回不大于该参数的最大值

字符函数

UPPER

3. 把字符串中的每个单词字母转换成大写

LOWER

4. 把字符串中的每个单词字母转换成小写

INITCAP

5. 把字符串中第一个字母转换成大写

TRIM/LTRIM/RTRIM裁剪掉前导/后导/两端的空格字符或指定字符

LEADING代表前导,TRALING代表后导,BOTH代表全部

注:只能去掉首尾的字符,中间的不能去掉

6. 把首位的1去掉

7. 把首位的0去掉了

8. aaaaa



SUBSTR:截取字符串

9. 从字符串左边开始的第3个字符开始截取,长度为4

10. 从字符串右边开始的第5个字符开始截取,长度为4

11. 从字符串左边开始的第2个字符开始截取,长度为4(小数忽略)

12. 从字符串左边开始的第2个字符开始截取,如果超过了字符串长度则只会输出字符串剩余的字符

2. LENGTH 注:Oracle中1个汉字算1个字符,也是使用的unicode编码

1. 得出字符串的长度

2. 得到字符串的字节长度

REPLACE

3. REPLACE(src,search)

4. REPLACE(src,search,replacement)把字符串中指定的字符删除或者替换成别的字符

3. CONCAT(char1,char2)拼接字符串 注:所有SQL中,+只用于数字

1. 把两个字符串连接到一起

2. 把字符串和一个整数连接到一起

3. 拼接还有另外的一个常用方法,在字符串之间使用||连接

日期函数

Oracle中,有如下操作是合法的:

日期-日期 =
数字(相差的天数)

日期+数字 =
新的日期(数字指添加的天数)

MONTHS_BETEEN(date1,date2)算出两个日期间的的间隔月数

NEXT_DAY(date,char)

返回当前日期的下一个字符串参数指定的日子,字符串必需表示一周中的某一天,例如:星期一,星期日……

LAST_DAY(date)

得到某个日期当月的最后一天的日期

ROUND

转换函数

TO_NUMBER(expr,fmt)把字符串按指定格式转换成整数

TO_CHAR(number)

把字符串按指定的格式转换($代表美元符号)

L代表系统本地化的货币格式

TO_CHAR(datetime,fmt)把一个日期时间转换成指定的字符串格式

注意:除了,./等少数标点外,日期格式中其他字符必须用“”括起来



TO_DATE

其它函数

NVL(exp1,exp2)

用于处理null值(nvl=null value),如果exp1的值不为null,则整个表达式的值为exp1的值,否则表达式的值为exp2的值

例子:显示每个员工的年收入(员工comm可能为空,使用NVL进行判断)

DECODE执行类似于switch…case…default的选择逻辑

--示例一:将工作岗位中的ANALYST显示为分析师,SALESMAN显示为销售,MANAGER显示为经理,其余的显示为其他

--示例一:显示出员工姓名以及所对应的部门名称

多行函数/聚合函数/分组函数

分组查询语法:

SELECT

FROM

WHERE

GROUP BY

ORDER BY

多行函数:一次调用,处理多行数据

***G:求多行一列的列平均值

--示例:10号部门全部员工平均工资

--示例:每个部门的平均工资

注:分组显示查询时,select子句中只能出现分组表达式和分组函数,除此之外的任何列都是非法的。

COUNT

--示例:显示所有员工的数量

--示例:显示奖金的人数

注:COUNT会忽略null行

--示例:显示每个部门的编号,人数

MAX:返回多行一列中最大行的值

--示例:求全部员工中工资最大值

MIN:返回多行一列中最小行的值

SUM:返回多行一列的和

--示例:求平均工资大于2000的部门编号

select deptno,***G(sal)

from emp

where ***G(sal)>2000

group by deptno;

--结论:WHERE子句中禁止出现聚合函数!如需要将聚合函数的结果作为筛选条件,则在HAING子句中声明
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: