关于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.','@')<>'@'