说起模糊查询,大家首先想到的就是使用“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;