首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 数据库开发 >

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

2012-02-25 
关于ORACLE中字符串类型字段查询数字格式的问题ORACLE数据库,表中有个VARCHAR2类型的字段,存的都是数字格

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

热点排行