这是一张数据表
ID   TITLE    DEPTID
1    通知一     一大队
2    通知二     一大队,二大队
3    通知三     三大队
4    通知四     二大队
5    通知五     五大队这是我的SQL
select * from epare_safe_callboard t where t.deptcid in (A) --A是一个传入的变量值,
这里赋值为('一大队'、'二大队')我的目标是取出
ID   TITLE    DEPTID
1    通知一     一大队
2    通知二     一大队,二大队
4    通知四     二大队但是获得结果却是
ID   TITLE    DEPTID
1    通知一     一大队
4    通知四     二大队这个SQL是哪里出错了呀?

解决方案 »

  1.   

    where t.deptcid in (A) 是完全匹配;
    select * from epare_safe_callboard t where t.deptcid like '%一大队%' or t.deptcid like '%二大队%';
    应该可以了!
      

  2.   

    select * 
    from epare_safe_callboard t 
    where INSTR(t.deptcid,'一大队')>0 or INSTR(t.deptcid,'二大队')>0
      

  3.   

    select * from  epare_safe_callboard t  where regexp_like (t.deptcid,'一大队|二大队');
      

  4.   

     iamwho123 使用了你的SQL,但是提示我是无效的关系运算符
      

  5.   

     iamwho123 使用了你的SQL,但是提示我是无效的关系运算符
      

  6.   

    sorry,我用的是10g,我测了一下没有问题,9i好像不支持,抱歉!
      

  7.   

    第一种方法:
    select * from epare_safe_callboard t where t.deptcid like '%一大队%' or t.deptcid like '%二大队%';
    第二种方法:
     select * from epare_safe_callboard t where t.deptcid in('一大队','二大队','一大队,二大队')
      

  8.   

    明白一个问题就可以了就是:
    '一大队,二大队'
    in
    ('一大队'、'二大队') 是false。