我在BigQuery中有以下架构:
整个表格如下:
SELECT * FROM `...nested`
我现在只想查询所有标题为“Hello”的评论行,而且我很想知道如何做到这一点。
SELECT * FROM `...nested` WHERE comments.title = 'Hello'
# Error: Cannot access field title on a value with type ARRAY<STRUCT<title STRING, message STRING>> at [1:69]
SELECT * FROM `...nested` WHERE comments.title IN ('Hello')
# Error: Cannot access field title on a value with type ARRAY<STRUCT<title STRING, message STRING>> at [1:69]
comments.title CONTAINS“Hello”似乎是可用的遗留SQL,所以我想知道它的等价物是什么。
答案 0 :(得分:2)
试试这个:
SELECT *
FROM dataset.nested
WHERE EXISTS (
SELECT 1 FROM UNNEST(comments)
WHERE title = 'Hello'
)
这将返回至少一个注释的标题为Hello的所有行。例如,您也可以使用LIKE
代替相等来查找子字符串。有关使用数组的更多信息,请参阅relevant documentation。