Oracle部分函数个人理解(第一部分)

一、sign
sign简言之就相当于数学中判断一个数字的符号,当数字大于0的时候返回1,数字小于0的时候返回-1,数字等于0的时候返回0,常用作两个数字大小的判断,如下语句所示select sign(1-10) from dual;该条语句返回的就为-1
二、decode
decode的作用可以简单的描述为(if else) (if else) else这样的代码实现的功能,我个人的理解就是oracle里面一种case when的简单实现形式,decode的语法是这个样子的DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 我对其描述是这个样子的:当value的值为if1的值时返回then1的结果,当value的值为if2的值时返回then2的结果。。。最后有个else的默认结果;decode值得注意的地方就是它只做等于的判断,即只有值等于条件的时候才会返回结果,我们可以结合sign来处理一些结果,诸如下面的语句select decode(sign(10-11),1,10,-1,11,0) from dual;该条语句的作用就是判断10和11的大小,当10>11的时候返回10、当10<11的时候返回11、否则返回0,此处仅是举例使用,可根据具体应用情况扩展
三、substr、substrb
oracle截取字符串函数,区别在于一个是对字符,一个在对字节,一个中文字符占两个字节,substr(n1,n2,n3)表示从n1的n2的长度开始截取截取n3的长度,n3为空时表示一直截取懂啊字符串结束为止,当n2为负数时表示开始位置是从字符串右边开始,即:substr("ABCDEFG", -3, 3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。还有注意点substrb('abcde',1,2)和substrb('abcde',0,2)的返回结果是一样的,这个其实可以从n2可以是正数和负数考虑
三、wmsys.wm_concat(column)函数

个人对这个函数的理解就是一个字符串拼接函数,打个比方:现在有这样一个需求,我们有一个包含两个字段的表,我们需要根据其中一个字段来分组,然后拼接另外一个字段,如下图所示 :我们有一个tmp_tmp得到表,表中有两列字段,我们需要根据str1来分组,然后拼接str2



使用如上语句我们即可轻松实现我们想要的功能。

本文只是个人理解,如有不对之处还请各位大大指出。

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L若儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值