oracle笔记(三)函数
函数
1、函数的定义:接受输入产生输出,可以没有输入,但是有输出。单行函数:一个输入,一个输出,多行函数:多个输入,一个输出。
2、lower()转小写,upper()转大写,initcap()首字母大写,数据库中,下标从1开始的。
3、substr(a,b)从a中,第b位开始取,去右边所有的字符;substr(a,b,c)从a中,第b位开始取,取c位。
4、length()字符数,lengthb()字节数
5、instr()在母串中查找子串,找到返回下标,否则返回0;instr(a,b)a是母串,b是子串;
6、lpad()左填充,rpad()右填充,例如lpad('abcd',10,'*')用*左填充abcd左边的6位,共10位;trim('h' from 'hello worldh')去掉前后的H;replace(a,b)替换a中的字符B;
7、mod()求余,round()四舍五入round(a,b)四舍五入a中的b位,b可以为负数。
8、trunc()截断,跟round规则一样,只不过不四舍五入而已。
9、oracle中没有日期时间类型,只有date,实际上date包含了时间,systimestamp时间戳,精确的表示时间。
10、日期的数学运算:日期加上或者减去一个数字,结果任然是日期,数字的单位是天,日期跟日期之间的减运算得到的是数字,不能做加运算;months_between()两个日期相差的月数(这个值是准确值);add_months()在指定的日期上加月数;next_day()指定日期的下一个日期,此函数可以用作数据库备份,让数据库自动完成备份,数据库快照;日期的四舍五入跟数字差不多,只不过第二个参数不同,只能是month、year等日期时间值;month得到的是某月1号,year得到的是某年1月1号;
11、转换函数:不同的数据类型直接转换,分为隐式转换和显式转换;隐式转换的前提必须是被转换对象是可以转换的,如果不能满足此条件,则报错;to_数据类型()函数表示转成某格式的数据类型;日期有格式限定符;如果要在日期格式中加入自定义的字符,则需要加双引号;
12、通用函数,可以作用任意数据类型,包括null。nvl2(a,b,c)当a为空时,返回c,否则返回b。nullif(a,b)当a等于b时,返回null,否则返回a。coalesce(expr1,expr2,expr3,,....)从左至右,返回第一个不为空的值。
13、case表达式与decode函数:实际上是if else逻辑
? ? 1)case表达式,case ?expr ?when ?判断表达式 ?then 返回值 ?when 判断值2 then 返回值 else 返回值 ? ?end;
? ? 2)decode函数,decode(需要判断的值, serch1,result1,serch2,result2,default)。
?