首页 > 解决方案 > 我需要帮助创建在 Oracle 数据库中运行的 SQL Oracle 以仅获取那些没有数字值的列

问题描述

我试过这种方法:

SELECT column1 FROM table WHERE column1 not like '%[^0-9]%' and column1 != ''

但实际上什么也没发生,我需要过滤一个纯粹没有数值的列。

标签: sqloracle

解决方案


这个表达式:

column1 not like '%[^0-9]%'

不做你想的。它匹配如下所示的字符串:

 abasdfs[^0-9]asfsdf
 ^-----^ any string
        ^----^ exactly this
              ^-----^ any string

大概,你想要一个只包含数字的字符串。我会建议其中之一:

regexp_like(column1, '^[0-9]*$')
not regexp_like(column1, '[^0-9]')

推荐阅读