oracle中一个字段是RECIEVE_PEOPLE VARCHAR2(1000) Y ,其中这个字段为用逗号分隔 
如这个字段有值如:117,1638233
我怎么用sql语句来判断一个字符串在不在这个字段中呢
意思就是说我想查询如下
select * from table where '117' in RECIEVE_PEOPLE;
但是这个查不全,只能显示RECIEVE_PEOPLE为117的记录,
那么有没有其他的方法可以实现只要在这个字段中有这样的值,就可以显示该记录呢     

解决方案 »

  1.   

    select * from table where  instr(RECIEVE_PEOPLE,'117')>0;
      

  2.   

    select * from table where  instr(RECIEVE_PEOPLE,'117')>0;不行
    如果RECIEVE_PEOPLE='1171'怎么办select * from table where ','||RECIEVE_PEOPLE||',' like '%,117,%'
      

  3.   

    一楼的做法比较高明。
    二楼提供的做法,数据记录如果比较大的时候,一个简单的查询就可能需要很常的时间才会有返回结果。做法三:使用全文索引,这个应该是在同等条件下,性能最好的。参考:Oracle中文全文索引
      

  4.   


    把两种合起来select * from table where  instr(','||RECIEVE_PEOPLE||',',117,')>0