1、round(num,a),四舍五入,a代表小数点后多少位,若为负数,则代表小数点左多少位,例:round(1234,-2),结果为1200
2、nvl(a,num) ,若a为空,a=num;nvl2(a,num1,num2),若a!=null,返回num1,若为空,则返回num2
3、trunc(a,num),用于数字截断,这里num指小数点后num位,若为负数则指小数点右num位,substr(a,num1,num2)用于字符截断,截取num1~num2的位置。
4、nullf(a,b),若a=b,返回null,不等返回a
5、coalesce(exp1,exp2,exp3....),依次找到不为空的的值返回
6、trim函数的补充
trim一般都是用在删除字符串两边的空格。实际上,trim也可以用来删除字符串两边的指定字符。并且trim指定删除的字符串只能是单个字符。如
a.trim()删除字符串两边的空格。
b.ltrim()删除字符串左边的空格。
c. rtrim()删除字符串右边的空格。
d. trim('字符1' from '字符串2')
e. trim([leading | trailing | both] trim_char from string) 从字符串String中删除指定的字符trim_char。
leading:从字符串的头开始删除。
trailing:从字符串的尾部开始删除。
borth:从字符串的两边删除。
f. tim()只能删除半角空格。
7、字符连接,|| 和 concat都是用于字符连接,但是concat只能用于两个字符之间的连接,而 || 则可以用于多个字符连接,concat多字符连接时需要嵌套
8、instr(a,x)判断字符串a中x字符的位置,不存在则返回0,例如instr('hellow','l'),返回3(返回第一次出现的),所以当需要计算字符串中某个字符的重复次数不能用此函数
9、补充:第8点问题,用translate和length可以计算出某个字符在字符串中的重复次数;
语法:TRANSLATE(char, from, to)
用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。
三个参数中有一个是空,返回值也将是空值。
故将'abcdefga'中的'c'全部删除;
select translate(',01234,2342,2,', 'a013456789,', ' ') from dual; 结果为2222;
10、replace
只不过replace针对的是字符串,而translate针对的是单个字符。
11、左插入和右插入,LPAD(a,num,x),RPAD(a,num,x);