当前位置: 代码迷 >> Oracle开发 >> 求varchar2型转换成number型的方法!该如何处理
  详细解决方案

求varchar2型转换成number型的方法!该如何处理

热度:64   发布时间:2016-04-24 07:46:44.0
求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;


  相关解决方案