日期:2014-05-17  浏览次数:20998 次

求varchar2型转换成number型的方法!
有一字符串是:4683,968
有一字段id是number型
现在要把4683,968转换成number型,来进行id   in   (4683,968)的判断,
但是select   to_number( '4683,968 ')   from   dual会报错,因为逗号为无效数字,
现在用什么方法才能转换用以比较呢?郁闷求解。


------解决方案--------------------
select to_number(replace( '4683,968 ', ', ', ' ')) from dual;
------解决方案--------------------
是varchar2也没有关系啊,你甚至可以将id也变成varchar2类型,再进行两个字符串中进行匹配啊。另外一个办法是将‘4683,968’变成数字数组再进行比较。


------解决方案--------------------
select ' ' ' '||replace( '4683,968,969 ', ', ', ' ' ', ' ' ')|| ' ' ' ' from dual;
------解决方案--------------------
实在不行,换另一种方法。现在传过来的值是:4683$968$969,能不能循环找出4683,968,969然后拼成:
select 4683 id from dual
union
select 968 id from dual
union
select 969 id from dual
..........
这个循环拼接的sql怎么写啊?


SELECT (select 4683 id from dual)||(select 968 id from dual)||(select 969 id from dual) ID FROM DUAL;