BigQuery字符串比较和调整(带有替换/修剪)

时间:2019-01-06 16:11:37

标签: replace google-bigquery

我试图在BigQuery中容纳间距较差的输入。
但是,我一直得到奇怪的结果,基本上是说abc <> abc

任何人都可以解释这是怎么可能的吗? 我尝试使用replacertrim进行调整,但没有一个达到目的。

谢谢

SELECT o = t,o, t, length(o) as lon_o, length(t) as len_t
from
(select replace('abc                                                                ',' ','') o,
'abc' as t)

enter image description here

2 个答案:

答案 0 :(得分:3)

通过在字符串中使用tabs而不是空格(例如-

enter image description here

在外观上,它们看起来完全一样-但第一行中有64个空格,而第二行中有5个制表符和44个空格。在Web UI中,每个标签占据2个字符位置,因此,为什么总共5个标签+ 44个空格看起来像64个空格(与第一行完全相同)

要解决此问题-您可以使用REGEXP_REPLACE代替REPLACE
使用REGEXP_REPLACE允许您“删除”所有空白,如下例所示(唯一的区别在于第二行-使用REGEXP_REPLACE代替REPLACE并使用r'\s'代替' '

enter image description here

最后,如果要回到第一个示例,查看结果lon_o中实际上是8个字符还是3个字符的真正方法是从Table视图{{1 }} JSON视图如下

enter image description here

答案 1 :(得分:1)

这对我有用 enter image description here

检查文本中是否没有隐藏的ASCII字符,例如HEX 80