mysql - 将使用 JSON_EXTRACT 的查询从 MySQL 转换为 BigQuery
问题描述
我对 MySQL 有以下查询:
SELECT COALESCE(
TRIM(BOTH '"' FROM JSON_EXTRACT(fb.p_dataforanalytics,'$.gender')),
TRIM(BOTH '"' FROM JSON_EXTRACT(g.p_dataforanalytics,'$.gender'))
) as chosen_gender
FROM ...
这适用于 MySQL,但不适用于 BigQuery:
语法错误:应为 ")" 但得到字符串文字 '"'
TRIM/JSON_EXTRACT 存在一些问题。
如何在 BigQuery 中执行此操作?
解决方案
假设gender
key 指向单个标量值,那么 BigQuery 的JSON_EXTRACT_SCALAR
函数可能就是您需要的:
SELECT
COALESCE(JSON_EXTRACT_SCALAR(fb.p_dataforanalytics, "$.gender"),
JSON_EXTRACT_SCALAR(g.p_dataforanalytics, "$.gender")) AS chosen_gender
FROM yourTable;
从文档中,应该不需要修剪双引号,因为它们不会出现在输出中。
推荐阅读
- vba - 自动登录并发送电子邮件
- python-3.x - 为具有多索引的 Pandas DataFrame 中的未命名列分配名称
- r - 如何根据r中的数字替换snatchy缺失值
- javascript - 如何使用多个按钮集更改单击时的按钮边框,以便仅影响一组
- java - 为数组创建构造函数并使用自定义类型填充它
- powershell - Powershell studio datagridview if 语句
- javascript - 如何在客户端浏览器中使用节点缓冲区模块 - 请详细说明
- tableau-api - 注销并使用其他用户登录后,使用参数 = username() 重新加载 Tableau 自定义 SQL 数据源(实时)
- javascript - Angular 服务方法错误:未捕获的 SyntaxError: Unexpected token ':'
- ios - Obj-C - 获取键中所有值的总和?