首页 > 解决方案 > SQL / Celonis - 字段仅包含数字,删除其他任何内容

问题描述

在一个字段中,我想保留那些只有 100000 到 999999 之间的数字

该字段混合了数字、字母数字、字母字符。

如果字段中有数字,则此功能将保留,例如将 abc123 保留在我希望删除的位置

where some_column NOT LIKE '%[^0-9]%'

附加 - Celonis 等效?

Gordon 提供了 SQL Server 编码以完全按照预期执行此操作。

我希望这能在Celonis中工作,但不支持 try_convert 函数。还有其他方法吗?

where try_convert(int, some_column) between 100000 and 999999

标签: sqlsql-servernumeric

解决方案


首先,很高兴知道 Celonis 使用 Vertica SQL 来收集事件。Vertica 有一些特定的功能,您可以在https://www.vertica.com/docs/找到这些功能。

也就是说,我不确定我是否很好地理解了您的问题,但我认为REGEXP_ILIKE是您可以使用的东西,其中 '[0-9]' 可能是您要检查您的字段是否包含的表达式数值。

如果您想提取数字本身(例如检查它是否在 100000 和 999999 之间,请使用REGEXP_SUBSTR

您的代码将类似于: WHERE REGEXP_SUBSTR(some_column, [0-9]) BETWEEN 100000 AND 999999


推荐阅读