玉祥平台客服-15087858732

标题: Oracle中判断字段是否为数字 [打印本页]

作者: 张兴康    时间: 2020-5-20 14:20
标题: Oracle中判断字段是否为数字
oracle没有给我们提供判断某一列是否全部由数字组成的函数,那么根据我的经验我总结了两个行之有效的方法(列名:column,表名:table):

  1. select * from table where trim(translate(column,'0123456789',' ')) is NULL;
复制代码
translate函数的第三个参数是一个空格,不是'', 因为translate的第三个参数如果为空的话,那么永远返回'',这样的就不能达到过滤纯数字的目的。这样把所有的数字都转化为空格,如果全部是由数 构成,那么一旦trim后自然是空,实现了上述目标。当然如果想排除空项的话,可以这样写:
  1. select * from table where trim(translate(nvl(column,'x'),'0123456789',' ')) is NULL;--x 表示任何'0-9'以外的字符。
复制代码





作者: 张兴康    时间: 2020-5-20 14:20

作者: 张兴康    时间: 2020-5-21 16:40

作者: fteair    时间: 2020-5-28 17:35

作者: 张兴康    时间: 2020-5-29 13:58
fteair 发表于 2017-12-28 17:35


作者: fteair    时间: 2020-6-3 17:04
张兴康 发表于 2017-12-29 13:58


作者: 张兴康    时间: 2020-6-5 14:42
fteair 发表于 2018-1-3 17:04






欢迎光临 玉祥平台客服-15087858732 (http://bbs.delit.cn/) Powered by Discuz! X3.2