select replace('1740,1769,1000,989',',',''''||','||'''') from dual;
对不起上面问题已经解决了。就是广丽的写法.谢谢,可是我仍然有问题。 select id from t where id in ('1348','1599'); ID -- 13 15select id from t where id in (concat(concat('''',replace('1348,1599',',',''',''')),''''));ORA-01722: invalid number问题是,我要查询的条件是存在另一个表里的一个字段中的.该字段存储着一串符合条件的值 形式为:12,56,59 或45,6, 或空 (即有以逗号结尾的,也有不以逗号结尾的,也有为空的)
逗号前后各加一个单引号,就解决问题了。 SQL> select '1740,1769,1000,989' a,',' b,''',''' c from dual;A B C ------------------ - --- 1740,1769,1000,989 , ','SQL>
select replace('1740,1769,1000,989',',',''',''') from dual;
select id from t where id in ('1348','1599');
ID
--
13
15select id from t where id in (concat(concat('''',replace('1348,1599',',',''',''')),''''));ORA-01722: invalid number问题是,我要查询的条件是存在另一个表里的一个字段中的.该字段存储着一串符合条件的值
形式为:12,56,59 或45,6, 或空 (即有以逗号结尾的,也有不以逗号结尾的,也有为空的)
SQL> select '1740,1769,1000,989' a,',' b,''',''' c from dual;A B C
------------------ - ---
1740,1769,1000,989 , ','SQL>