oracle判断一个字符串中是否包含另外一个字符串

select * from a where instr(a,b)>0;

用于实现B字段是A字段中的某一部分的时候,要论顺序或者要相邻的字符。

如果想要不论顺序或者不相邻的字符时,定义函数可以实现:

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; 结果:
SQL> select * from a; A B
---------- ----------
asdf sd
asdf ad
asdf df
asdf asdf SQL> select * from a where checks(a,b)>0; A B
---------- ----------
asdf sd
asdf ad
asdf df
asdf asdf
上一篇:使用ArrayList时代码内部发生了什么(jdk1.7)?


下一篇:安装部署Apache Hadoop (完全分布式模式并且实现NameNode HA和ResourceManager HA)