再开发的时候,我们总会和Oracle打交道,我最近遇到了个情况,有个项目,他是之前的老项目,字段设计的有问题,一个表a字段是varchar2,一个表b字段是number,这样表a里面此字段有可能是保存的包含字符,比如XN00001,然后去b表里面去查询,就会报类型错误。并且,这还是两个数据库的表,所以我就在想,能不能查询的时候判断下,将含有字符的去掉呢。
经过一顿百度和数据库执行测试,最终发现:
select decode(trim(translate(trim(字段),‘0123456789.’,’ ‘)),’’,‘true’,‘false’) from dual;这个函数可以满足条件。
首先,trim函数是为了去除数据的空格。
其次,translate函数是将字段中的‘0123456789.’替换成’ ‘,这样剩下的就是不是数字的字符了。
最后,decode函数是如果经过translate处理的数据是”,就返回true,否则返回false。
所以,此函数可以满足判断数据是否是数字类型的,如果是返回true,否则返回false。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/101731.html