sql – 在Oracle中查找不包含数字数据的行

前端之家收集整理的这篇文章主要介绍了sql – 在Oracle中查找不包含数字数据的行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在一个非常大的Oracle表中找到一些有问题的记录.该列应包含所有数值数据,即使它是一个varchar2列.我需要找到不包含数字数据的记录(当我尝试在此列上调用它时,to_number(col_name)函数会抛出一个错误).

解决方法

要得到一个指标: @H_403_6@DECODE( TRANSLATE(your_number,'0123456789',' ')

例如

@H_403_6@sql> select DECODE( TRANSLATE('12345zzz_not_numberee',' '),NULL,'number','contains char') 2 from dual 3 / "contains char"

@H_403_6@sql> select DECODE( TRANSLATE('12345','contains char') 2 from dual 3 / "number"

Oracle 11g具有正则表达式,因此您可以使用此表达式获取实际数字:

@H_403_6@sql> SELECT colA 2 FROM t1 3 WHERE REGEXP_LIKE(colA,'[[:digit:]]'); COL1 ---------- 47845 48543 12 ...

如果有一个非数字值,如’23g’,它将被忽略.

猜你在找的MsSQL相关文章