sql函数的补充

在数字类型的函数中需要注意一点是:许多函数只支持返回小数到38位

但是像一些数学类型的函数例如cos、log等都只支持到小数点后36位

像ACOS,ASin等的函数只能支持到小数点后30位

而字符类型的函数中如果函数返回char类型,长度不超过2000字节

VARchar类型长度不超过4000字节,如果长度超过,Oracle会直接截断值最大支持长度

clob类型的函数,返回长度不超过4G,一旦超过,函数直接报错。

Substr函数的各种用法
1.substr(‘abcd1234’,1,2):意思是从参函1的第参数2位开始向后取参数3位;


2.substr(‘abcd1234’,0,2):结果和第一种方式相同,但是由于对于字符来说没有第0位,所以结果是一样的。


3.substr(‘abcd1234’,2):如果不指定参数3,函数会直接截取参数2 位后的所有字符


4.substr(‘abcd1234’,-4,3):参数2位负数,指的是从后向前第四位开始


5.substr(‘abcd1234’,-10)和substr(‘abcd1234’,-8):由于字符串的总长度是8位,所以当参数1的长度大于参数1的总长度时,函数不返回值



Replace的各种用法
1.replace (‘abcd1234’,’abcd’)和replace(‘abcd1234’,’abcd’,’’):replace函数中参数3为null和没有参数3的结果是一样的:


2.replace(‘abcd1234’,’’,’1234’)和replace(‘abcd1234’,’abcd’,’’):在参数2中出现null,整个函数会返回参数1,参数3为null会删除参数2中的所有字符:


Translate函数的各种用法
1.translate(‘abcd12334’,’123456’,’abcdef’):translate函数是在参数1中,将参数2所对应的字符用参数3中的字符替换,如果参数2中存在参数1中没有的字符,会自动排除。


函数中的参数不检查顺序,只是以单个字符为单位执行函数。
0.translate(‘aaabbbcccddd’,’abc’,’123’):用函数来证明以上现象:


此函数执行时无视顺序,以单个字符为单位
1.translate(‘aaabbbcccddd’,’abc’,’12’):如果参数2字符长度大于参数3,在执行函数时,无视参数2中多余参数3的那一部分,参数之间是以单个字符对应的,但是由于参数2中存在C这个字符,所以函数执行之后会直接删除。


2.translate(‘aaabbbcccddd’,’abc’,’ ‘):参数3是空格,由于SQL中会将空格视为一个字符,而且参数3中只有一个字符,所以函数执行后会将a进行替换,其他直接删除


3.translate函数中不能出现null,否则直接返回null


Instr函数的各种用法
1.instr(‘abcd1234’,’123’)和instr(‘abcd1234’’12345’):由于instr函数在执行时会寻找参数中第一个字符匹配的位置,但是在寻找过程中是以参数2整个字符串为单位的。


2.instr(‘abcd1234’,’12’,1)和instr(‘abcd1234’,’12’,3)和instr(‘abcd1234’,’12’,6):函数中参数3的意思是从指定的位置开始寻找,但是找到后还是会返回整个参数1中的位置,但是由于第6位之后没有12,所以函数会返回0;


3.instr(‘abcd1234’,’12’,-3)和instr(‘abcd1234’,’12’,-6):参数3为负,首先是指从后向前数第三位,在instr函数中还指函数的寻找方向是从后向前,找到后会返回参数2在整个参数1中的绝对位置


4.instr(‘abcd1234abcd1234’,’12’,1,2)和instr(‘abcd1234abcd1234’,’12’,-1,2):参数4代表寻找参数2在参数1中第二次出现的位置。


Trim函数的各种用法
1.rtrim(‘abc111222333’,’123’):这种用法也证明了,trim函数在执行时是以单个字符为单位的。


2.ltrim(‘321abc123’,’123’):由于函数执行时是以单个字符为单位的,并且L关键字规定了函数只能操作整个字符串从中间开始左边的那一部分,所以整个函数会返回ABC123


3.trim(‘   abc   ’):trim函数中只有参数1,并且关键字只有trim时,整个函数是用来删除字符串两边的空格的。


4.trim(‘_’ from ‘___abc___’):是函数的另一种写法,但是整个函数的含义没有变化


Lpad补位函数:
此函数是用于对参数进行补位操作的


在函数没有参数3时,会自动为参数1补空格,与trim函数是相反的
Lpad(‘1’,10,’0’):这时,函数会自动为参数1补参数3至参数2位。



Chr函数和ASCII函数:
chr函数是将数值转换成ASCII码中数值代表的那个字符,ASCII函数是将字符在ASCII码中所对应的数值显示出来:


但是对于ASCII函数,当参数中存在多个字符时,会只返回第一个字符所对应的位置


一些数学函数
Abs():取参数的绝对值:


Power(参数1,参数2):对参数进行求次幂运算


Sqrt:对参数进行平方根运算


Log(参数1,参数2):进行log运算


Mod函数:取余数运算,有一个特殊点是,mod函数中除数可以是0,当除数为0时,函数返回参数1.


Ceil()函数:求比参数大的第一个整数


Floor()函数,求比参数小的第一个整数


Sign()函数:求参数是否正,如果为正返回1,为负返回-1,参数为0则返回0;


Greaest(参数1,参数2,….):函数可以存在多个参数,只返回参数中的最大值。


Least(参数1,参数2,…)求参数中的最小值



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值