select * from a where instr(a,b)>0;用於實現B字段是A字段中的某一部分的時候,要論順序或者要相鄰的字符。web
若是想要不論順序或者不相鄰的字符時,定義函數能夠實現:函數
select * from a where instr(a,b)>0;這個只能實現B字段是A字段中的某一部分的時候。
若是想要不論順序或者不相鄰的字符時,定義函數能夠實現
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;
if cou=length(v_b) then
return cou;
end if;
dbms_output.put_line(cou||' '||length(v_b));
return num;
end;oop
結果:
SQL> select * from a;spa
A B
---------- ----------
asdf sd
asdf ad
asdf df
asdf asdform
SQL> select * from a where checks(a,b)>0;it
A B
---------- ----------
asdf sd
asdf ad
asdf df
asdf asdfio