首页 > 解决方案 > 将使用 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 中执行此操作?

标签: mysqlgoogle-bigquery

解决方案


假设genderkey 指向单个标量值,那么 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;

文档中,应该不需要修剪双引号,因为它们不会出现在输出中。


推荐阅读