在ORACLE 中使用Instr和Decode函数处理组合查询

ORACLE 中使用InstrDecode函数处理组合查询

 

 

系统开发中经常要处理多条件组合查询的情况,使用这两函数可以简化处理。先说下这两函数的语法:


Oracle/PLSQL, instr 函数返回一个子串出现的位置。

Instr
函数的语法:
instr (string1, string2, [start_position], [nth_appearance])

string1
准备从中查找的字符串。

string2
是要查找的字符子串。

start_position
是指要在string1中开始查找的位置。可选项,忽略时从1开始查找。如果它是个负数,则从string1的末端往开始方向数起第start_position字符开始查找。


nth_appearance
指定在string1中第几次出现string2。忽略,则默认为1

再说明一下decode()的功能和语法:
它跟一个if …then  else 非常类似,

decode
函数的语法为:

decode ( expression , search , result [, search , result]... [, default] )

expression
是比较的目标。

search
是跟目标比较的值。

result
是如果expression search 值相等,则返回值为result.

default
可选项,如果expression与所有的search不相等,则返回default

 

应用举例:

    Open t_Outcusor For
                Select Outpo_No,
                             Outpodate,
                             Remark,
                             Drivername,
                             Driverno,
                             Conttel,
                             Consignee,
                             Conaddress,
                             Voucherno,
                             Carno,
                             Model,
                             Lacptno
                From Tpeccancy p,
                         Tmailintegration m
                Where Instr(Decode(v_Carno,
'%', Carno, v_Carno), Carno) > 0

And  Instr(Drivername, Decode(v_Voucherno, '%', Drivername, v_Voucherno)) > 0 And p.Lacptno = m.Seqno And
                            m.Ctrlbureau = p_Tcbranchid And p.Rjflag =
'0'
And Acptdate Between p_Begindate And p_Enddate;
       

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值