oracle in instr,Oracle decode instr

本文详细介绍了Oracle中的Instr函数用于字符串查找,并对比了DECODE函数,通过实例演示如何在项目中使用这两个函数进行字符串定位和条件逻辑处理。同时讨论了它们与CASE和SQL的其他函数之间的区别。
摘要由CSDN通过智能技术生成

在项目中用到了Oracle中Instr这个函数,顺便仔细的再次学习了一下这个知识。

Oracle中,可以使用Instr函数对某个字符串进行判断,判断其是否含有指定的字符。

其语法为:

Instr(string, substring, position, occurrence)

其中

string:代表源字符串;

substring:代表想聪源字符串中查找的子串;

position:代表查找的开始位置,该参数可选的,默认为 1;

occurrence:代表想从源字符中查找出第几次出现的substring,该参数也是可选的,默认为1;

如果 position 的值为负数,那么代表从右往左进行查找。

返回值为:查找到的字符串的位置。

对于Instr函数,我们经常这样使用:从一个字符串中查找指定子串的位置。

例如:

SELECT Instr('Hello Word', 'o', -1, 1) "String" FROM Dual 的显示结果是

Instring

————

8

DECODE()函数,它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。

区别于SQL的其它函数,DECODE函数还能识别和操作空值。

语法:DECODE(control_value,value1,result1[,value2,result2…][,default_result]);

control _value试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。

value1是一组成序偶的数值。如果control _value返回值与之匹配成功,则相应的结果result1将被返回,反之就与下个序偶相比较.

如果对应一个空的返回值,可以使用关键字NULL于之对应

result1 是一组成序偶的结果值。

default_result 未能与任何一个值匹配时,函数返回的默认值。

例如:

selectdecode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual

当x等于1时,则返回‘x is 1’。

当x等于2时,则返回‘x is 2’。

否则,返回others’。

需要,比较2个值的时候,可以配合SIGN()函数一起使用。

SELECT DECODE( SIGN(5 -6), 1 'Is Positive', -1, 'Is Nagative', 'Is Zero')

同样,也可以用CASE实现:

SELECT CASE SIGN(5 - 6)

WHEN 1 THEN 'Is Positive'

WHEN -1 THEN 'Is Nagative'

ELSE 'Is Zero' END

FROM DUAL

在Oracle中利用sign函数实现if-elseif-end的功能 ,下面是decode和sign的组合使用

select 字段i,decode(sign(字段i-90+1), 1,'A',

decode(sign(字段i-75+1), 1,'B',

decode(sign(字段i-60+1),1,'C','D')

)

) grade_char

from table

order by grade_char,字段i;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值