oracle中的模糊查询

说起模糊查询,大家首先想到的就是使用“like”关键字,对,这个没错,模糊查询的确使用的是“like”关键字,具体用法就不在这里赘述了。

今天在工作中遇到了这样一个问题,数据表中某字段的内容为“甘肃省兰州市”,现在输入的内容是“甘肃1”,要求也要能够检索出这条记录,这时候使用“like”关键字是无法办到的。在网上找到了如下代码,经过改造之后,可以实现刚才的要求,改造后的代码如下:

create or replace function checks(v_a varchar2,v_b varchar)   
 return number   
 as  
    num number;   
    cou number;   
 begin  
    num := -1;   
    cou:=0;   
    for i in 1..length(v_b) loop   
       if instr(v_a,substr(v_b,i,1))>0 then  
    cou:=cou+1;   
       end if;   
    end loop;   
    return cou;    
    dbms_output.put_line(cou||'    '||length(v_b));   
 return num;   
 end;  

select * from table1 t where checks(t.name,"甘肃1")>0;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值