BigQuery中如何对JSON提取的子元素设置过滤条件筛选数据行
你可以直接在WHERE子句中对提取的title字段加模糊匹配条件即可实现需求。注意json_extract返回的是带JSON格式外层引号的字符串,更推荐用json_extract_scalar提取纯字符串值后再过滤,调整后的参考SQL如下:
SELECT timestamp, operation as event_type, json_extract_scalar(data, '$.title') as title, json_extract_scalar(data, '$.duration') as duration, FROM `videos` WHERE operation = "CREATE" AND json_extract_scalar(data, '$.title') LIKE '%facebook%' ORDER BY timestamp ASC
如果你需要保留原有的json_extract用法,需要匹配返回结果自带的双引号,过滤条件写法如下:
WHERE operation = "CREATE" AND json_extract(data, '$.title') LIKE '%"facebook"%'
推荐优先使用json_extract_scalar,它会直接返回JSON字段的原生标量值,不会附带JSON格式的引号,后续如果需要对duration这类数值字段做大小比较、运算等操作也更方便。
内容的提问来源于stack exchange,提问作者user515766
相关产品推荐
相关产品推荐

