求sql语句varchar转int 遇到特殊字符跳过

javahome2 2015-01-07 12:57:09
我想查一个字段是varchar转换成int
用来判断<25以下的数据
可是现在有少量特殊字符不能转换int

想按照20140101-20140202这种的时间把小于25数据查出来,不能转换的也查出来
...全文
417 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zha_sir 2015-01-20
  • 打赏
  • 举报
回复
引用 2 楼 javahome2 的回复:
想查询指定时间段,25以下的数据,和不能判断的特殊字符数据 时间段例如20140101-20141111 字段abc是varchar里面是30,26,24.5,25,这样的数据,里面还有一些不能通过to_number(abc)转换的特殊字符
先将不能转换的数据替换为“”,然后再用to_number()来转换,时间的类型直接比较就可以了 下面一个转换的一个小列子: select * from tb_object t where to_number(t.id) = 2
bw555 2015-01-07
  • 打赏
  • 举报
回复
利用正则对数据进行拆分
select REGEXP_SUBSTR(A, '正则表达式', 1, LEVEL) A,B,C
from T
CONNECT BY LEVEL <= REGEXP_COUNT(A, '正则表达式')
and rowid= prior rowid
and prior dbms_random.value is not null;
javahome2 2015-01-07
  • 打赏
  • 举报
回复
数据是别人数据库里面的我不能动,只能查询
  • 打赏
  • 举报
回复
楼主这种你用正则表达式替换,把非数字替换成空’‘字符串。
javahome2 2015-01-07
  • 打赏
  • 举报
回复
想查询指定时间段,25以下的数据,和不能判断的特殊字符数据 时间段例如20140101-20141111 字段abc是varchar里面是30,26,24.5,25,这样的数据,里面还有一些不能通过to_number(abc)转换的特殊字符
bw555 2015-01-07
  • 打赏
  • 举报
回复
看不懂呢?给出表结构再给点示例数据吧,啥小于25 啊?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧