create function get_num(p_id in varchar2,p_str in varchar2)
return number
as
v_str varchar2(100);
begin
select string_col||',' into v_str from style
where style_id=p_id;
when instr(v_str,',')>0 loop
if substr(v_str,1,instr(v_str,',')-1)=p_str then
return 1;
end if;
v_str:=substr(v_str,instr(v_str,',')+1);
end loop;
return 0;
end;
/
select * from style where get_num(style_id,string_col)=0

解决方案 »

  1.   

    可以啊,不过首先要把i给转换了,转换成字符型变量为j="(1,5,6,8,9,2,4)"
    则查询语句可以写成
    strsql1="select * from style where style_id in" & j就可以了。
      

  2.   

    建议可以另建立一张表styleid,字段style_id,这样也许更灵活。
    select * from style where style_id in (select stype_id from stypeid)
    还可以根据需要写左右连接
      

  3.   

    select * from style
    where instr('1,5,6,8,9,2,4',style_id) > 0