2016-07-14 73 views
0

当我在bigqeury中运行以下查询时,我没有收到任何结果。Bigquery SELECT * FROM table where column ='string'not returns any values

SELECT COUNT(*) FROM raw.bicc_customers WHERE sub_type = "SUD" 

我没有得到任何结果

然而,当我运行

SELECT COUNT(*) FROM raw.bicc_customers WHERE sub_type LIKE "%SUD%" 

我得到的结果。我正在寻找的领域是没有空间的SUD,我不明白为什么我需要通配符才能找到它。我错过了什么?

编辑:

所以在表中的列实际上是“SUD” - 你将如何找到这个不带通配符?

+0

是否有可能 “南德意志” 大约有空格或隐藏字符它? – William

+0

你确定'SUD'之前或之后没有任何空格/特殊字符吗? – Siyual

+0

尝试在使用'LIKE'返回的值上运行'LENGTH()'。你可能会发现他们有超过3个字符。 –

回答

1

所以在表中的列实际上是“SUD” - 你将如何找到这个 没有通配符?

选项1 - 转义双引号 - 见Escaping special characters in strings更多细节

SELECT COUNT(*) 
FROM raw.bicc_customers 
WHERE sub_type = "\"SUD\"" 

选项2 - 使用单引号

SELECT COUNT(*) 
FROM raw.bicc_customers 
WHERE sub_type = '"SUD"' 
3

我无法添加评论,因为我太新了。

但尝试执行此查询以帮助您确定发生了什么问题。

SELECT LENGTH(sub_type) FROM raw.bicc_customers WHERE sub_type LIKE "%SUD%" 

如果您看到所有长度值都大于3,则表示您的周围有一些空白字符。

你也可以这样做检查:

SELECT LENGTH(sub_type) FROM raw.bicc_customers WHERE LTRIM(RTRIM(sub_type)) = "SUD"