当前位置: 代码迷 >> 数据仓库 >> 关于ORACLE中字符串类型字段查询数字格式的有关问题
  详细解决方案

关于ORACLE中字符串类型字段查询数字格式的有关问题

热度:139   发布时间:2016-05-05 16:11:59.0
关于ORACLE中字符串类型字段查询数字格式的问题
ORACLE数据库,表中有个VARCHAR2类型的字段,存的都是数字格式的数据,就是考试成绩(88.8)。但是无意中插入了一些非数字格式的字符串如英文或中文等。我现在要把非数字格式的数据找出来,该怎么办啊。请教高手解决,感激不尽。。。

------解决方案--------------------


两种方法,
方法一、利用替换函数REPLACE(考试成绩,'1','')
REPLACE((((REPLACE(REPLACE(考试成绩,'9',''),......)'1',''),'1','') 如果是数值的话,替换掉所有的0123456789. 后长度为0的空字符串。

方法二、利用正则,不过要oracle 9i以上。
select * from yourTable where REGEXP_LIKE (考试成绩, '^\d*\.?\d*$');
------解决方案--------------------
这样试试看,注意 @(或者其他字符) 必须是一个你的字段中未出现的字符~~ 

select * from tbl where Translate(字段,'1234567890.','@')<>'@'
  相关解决方案