如何在BQ中将多列转换为JSON

kal*_*nly 2 sql google-bigquery

我的数据如下所示

empid   ename   start_date    end_date      city
101     ravi    10-Jan-2018   11-Mar-2020   New York
102    britney  10-Jul-2016   25-Mar-2021   Los angeles
Run Code Online (Sandbox Code Playgroud)

我想将多列转换为 JSON 格式,如下所示

empid   ename      emp_attributes
101     ravi       {start_date: 10-Jan-2018, end_date: 11-Mar-2020, city: New York}
102     britney    {start_date: 10-Jul-2016, end_date: 25-Mar-2021, city: Los angeles}
Run Code Online (Sandbox Code Playgroud)

您能否建议我如何编写 select 语句以在 BQ 中获得所需的输出

谢谢

ggo*_*don 5

您可以首先使用将这些属性转换为结构体,STRUCT然后使用以下方法将其转换为 jsonTO_JSON_STRING


SELECT
    empid,
    ename,
    TO_JSON_STRING(STRUCT(
        start_date,
        end_date,
        city
    )) as emp_attributes
FROM
    my_table
Run Code Online (Sandbox Code Playgroud)

让我知道这是否适合您