oracle10g中得到一个varchar2类型字段的值为'a,b,c',怎么得到一个{a,b,c}的集合,a,b,c分别也为varchar2,让我能进行select...form...where ... in 
('a','b','c')操作,操作只能在oracle中,','的数量不只2个,是动态的

解决方案 »

  1.   

    好像没有这个功能split功能哦
    参考:http://hi.baidu.com/wenwenxiaoxing/blog/item/419cd6ca91b01e43f21fe794.html
      

  2.   

    感觉还是到开发工具中去处理吧,比如.net直接就有split函数
      

  3.   

    或者用dbms_sql执行动态语句,这样就不需要拆分了
      

  4.   


    完全没必要....oracle有instr函数...你的in可以改写成instr,比如你要找value字段在不在'a,b,c,d'里,用 instr(value,'a,b,c,d')>0就行了...进一步,如果是'a,ab,abc,abcd'这种串,也就是说串内部的值是有包含关系的,
    可以用instr( ','||value||','  ,  ','||a,ab,abc,abcd||',' )>0
      

  5.   

    少加了对引号
    instr( ','||value||','  ,  ','||'a,ab,abc,abcd'||',' )>0
      

  6.   

    用函数instr()
    判断它里面是否存在值?如果存在值那么instr(','||'a,b,c'||',',字段)>0
      

  7.   


    个人感觉sql中只能用 instr来做了,否则的话,你就只有用前台java代码来实现了!