初始字符串 ‘A,B,C,D’ ;想要的结果 字符串 ‘A’,'B','C','D'  ;最后 写入 where xx.xx in (‘A’,'B','C','D'  ) 

解决方案 »

  1.   

    where instr(',A,B,C,D,',','||XX.XX||',')>0
      

  2.   

    select ''''||replace('A,B,C,D',',',''',''')||'''' from dual;
      

  3.   

    WITH t1 AS
     (SELECT rtrim(',' || 'A,B,C,D', ',') str FROM dual)
    SELECT *
      FROM your_table t --your_table你的表名
     WHERE t.col1 IN --col1你的字段名
           (SELECT substr(t1.str,
                          instr(t1.str, ',', 1, LEVEL) + 1,
                          decode(instr(t1.str, ',', 1, LEVEL + 1),
                                 0,
                                 length(str) + 1,
                                 instr(t1.str, ',', 1, LEVEL + 1)) -
                          instr(t1.str, ',', 1, LEVEL) - 1) s
              FROM dual, t1
            CONNECT BY LEVEL <=
                       (SELECT length(str) - length(REPLACE(str, ',')) FROM t1));
      

  4.   

    新手,select ''''||replace('A,B,C,D',',',''',''')||'''' from dual;
    这个写法不太懂,平时用replace就知道普通的替换,
    麻烦解释下,不胜感激