如何在雪花中找到隐形角色

How to find invisible character in Snowflake

我正在从数据集中提取数据,其中两列 old_value 和 new_value 应该 NOT 相等。但是我得到了错误的行。

例如:

old_value new_value
ABC ABC

不应提取此行,但它就在那里。弄清楚原因后,显示如下:

old_value new_value len(old_value) len(new_value)
ABC ABC 4 3

我不确定为什么 old_value 显示为“4”。我确实尝试用空白换行符 regexp_replace 替换白色 space,但 none 有效。

请建议如何找到并删除这个不可见的字符。谢谢!

您可以使用正则表达式删除非 ascii 字符

select regexp_replace(old_value, '[^[:ascii:]]', '')

您必须适应数据的模式