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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。