oracle关于模糊查询的问题

 

以前模糊查询使用的是:like
例如(Schema KMH_QC):
    select v.unitprice, v.unit, v.STORAGE, v.stationeryname, v.stationeryid,
           v.modelsize, v.classname, v.classid
    FROM v_wjqc_storage v
    where v.stationeryname LIKE '%'||#stationeryName#||'%';
问题:当传递进去的stationeryName值是'%'或者'_'时,它会查出所有信息。
解决方案:条件换为:instr(v.stationeryname,#stationeryName#) > 0

'_'通配一个字符,'%'通配N个字符,这是SQL的基本语法就有!

例如:传入参数为"_成_",表达的意思是查找三个字的,并且中间那个字是"成"的."_"可以出现多次,每出现一次代通配一个字符.
传入参数为"%成",表达的意思是最后个字是为"成"的.
传入参数为"%成%",表达的意思是只要包含"成"的都显示.
传入参数为"成%",表达的意思是第一个字是为"成"的.

同时"%"和"_"还可以配合使用:
例如:
传参数为"_成%"表示第二字为"成"的都显示.
非常灵活,自由组合.


 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值