Replace BigQuery字符串比较和调整与替换/修剪

Replace BigQuery字符串比较和调整与替换/修剪,replace,google-bigquery,Replace,Google Bigquery,我试图在BigQuery中容纳空格不正确的输入。 然而,我不断得到奇怪的结果,基本上是说,abc 有人能解释一下这是怎么可能的吗? 我试图通过使用replace和rtrim来调整这一点,但它们都没有达到目的 多谢各位 SELECT o = t,o, t, length(o) as lon_o, length(t) as len_t from (select replace('abc

我试图在BigQuery中容纳空格不正确的输入。
然而,我不断得到奇怪的结果,基本上是说,
abc

有人能解释一下这是怎么可能的吗? 我试图通过使用
replace
rtrim
来调整这一点,但它们都没有达到目的

多谢各位

SELECT o = t,o, t, length(o) as lon_o, length(t) as len_t
from
(select replace('abc                                                                ',' ','') o,
'abc' as t)
这对我有用

检查您的文本中是否没有隐藏的ASCII字符,这可能是导致此问题的原因,例如

这对我有效


检查您的文本中是否没有隐藏的ASCII字符,这可能是造成这种情况的原因。例如,

我可以很容易地复制您的案例,方法是(例如)在该字符串中有几个
选项卡,而不是空格-

从视觉上看,它们看起来一模一样——但第一行有64个空格,而第二行有5个制表符和44个空格。在Web UI中,每个选项卡占据2个字符位置,这就是为什么总共5个选项卡+44个空格看起来像64个空格(与第一行完全相同)

要解决此问题,可以使用REGEXP\u REPLACE代替REPLACE
使用REGEXP\u REPLACE可以“删除”所有空格,如下例所示(这里唯一的区别是第二行-使用REGEXP\u REPLACE代替REPLACE,使用
r'\s'
代替
'

最后,如果要回到第一个示例,那么要了解结果的
lon_o
中8个字符与3个字符的实际区别,最好的方法是从
Table
view
切换到
JSON`视图,如下所示


我可以很容易地复制您的案例,例如,在该字符串中有几个
选项卡,而不是空格-

从视觉上看,它们看起来一模一样——但第一行有64个空格,而第二行有5个选项卡和44个空格。在Web UI中,每个选项卡占据2个字符位置,这就是为什么总共5个选项卡+44个空格看起来像64个空格(与第一行完全相同)

要解决此问题,可以使用REGEXP\u REPLACE代替REPLACE
使用REGEXP\u REPLACE可以“删除”所有空格,如下例所示(这里唯一的区别是第二行-使用REGEXP\u REPLACE代替REPLACE,使用
r'\s'
代替
'

最后,如果要回到第一个示例,那么要了解结果的
lon_o
中8个字符与3个字符的实际区别,最好的方法是从
Table
view
切换到
JSON`视图,如下所示