由于工作需要使用Oracle数据库,所以会碰到一些函数,博主会持续更新碰到的函数
1.decode函数
decode(字段或字段的运算,值1,值2,值3)
当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3,值1、2、3也可以是表达式
2.sign()函数
根据某个值是0、正数还是负数,分别返回0,1,-1
用decode结合sign函数比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) --取较小值
3.substr函数
substr(string str,int a,int b)
参数1:string要处理的字符串,参数2:a 截取字符串的开始位置(起始位置是0)
参数3:b 截取的字符串的长度
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符
substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符
substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
substr("ABCDEFG", -3, 3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变
4.instr函数
instr(sourceString,destString,start,appearPosition)
instr('源字符串','目标字符串','开始位置','第几次出现')
start代表查找的开始位置,这个参数可选,默认为1
如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算
appearPosition代表源字符串中第几次出现目标字符串,参数可选,默认值为1
例如
instr('hello','l',1) 返回3
instr('hello','l',3) 返回3 从第三个位置起,包含第三个位置
instr('hello','l',4) 返回4
instr('hello','l',-1) 返回4 从右往左查找,从左往右算位置,o前边的l位置是4
instr('hello','l',1,2) 返回4
instr('hello','l',-1,2) 返回3
5.nvl函数
nvl(E1,E2)
如果E1为NULL,则返回E2,否则返回E1本身
————————————————————————————————
6.nvl函数改进后的nvl2函数
nvl2(E1,E2,E3)
如果E1为null,则返回E3,否则返回E2 注意:' '也算null见下图3
7.lower(str)函数
作用:将字符或字符串转换成小写
8.upper(str)函数
作用:将字符或字符串转换成大写
9.initcap(str)函数
作用:将字符或字符串的首字母转换成大写字母,其他字母均为小写
当参数为一个字符的时候,效果和upper函数一样
10.concat(str1,str2)函数
作用:字符(串)连接函数
11.length(str)函数
作用:求字符串的长度
12.round(a,b)函数
作用:对数字进行四舍五入,第二个参数b代表精确到哪一位,默认为0 精确到个位
例如:
round(45.923,2) 45.92
round(45.923,0) 46
round(45.923,-1) 50
13.trunc(a,b)函数
作用:对数字进行截取,不进行四舍五入
第二个参数b代表截取到哪一位,默认为0
例如:
trunc(45.923,2) 45.92
trunc(45.923) 45
trunc(45.923,-1) 40
14.mod函数
作用:取余数
例如:mod(1600,300) 100