[英]How to create a json column from multiple columns?
该表需要转换为json字段。
ID, product, line_item, createdDate
123, valA, valB, '2019-02-02'
JSON表将是这样。
ID, json_column
123, { valA :
{valB : '2019-02-02'}}
现在,我不确定可以使用哪种parse_json函数来创建此列。 当我使用列名时,它会出错-'无效标识符'
查询使用。
select ID, parse_json( {product : { line_item : createdDate }};
首先,始终尝试提供一个完全可复制的示例
这是根据您所写内容提出的一个问题
create or replace table x(id int,
product varchar,
line_item varchar,
createdDate varchar)
as select * from values
(123,'valA','valB','2019-02-02');
select * from x;
-----+---------+-----------+-------------+
ID | PRODUCT | LINE_ITEM | CREATEDDATE |
-----+---------+-----------+-------------+
123 | valA | valB | 2019-02-02 |
-----+---------+-----------+-------------+
现在,要获得所需的结果,可以使用OBJECT_CONSTRUCT函数,如下所示:
select id, object_construct(product, object_construct(line_item, createddate)) from x;
-----+---------------------------------------------------------------------+
ID | OBJECT_CONSTRUCT(PRODUCT, OBJECT_CONSTRUCT(LINE_ITEM, CREATEDDATE)) |
-----+---------------------------------------------------------------------+
123 | { |
| "valA": { |
| "valB": "2019-02-02" |
| } |
| } |
-----+---------------------------------------------------------------------+
如果要将多个订单项分组在一起,则可能还需要OBJECT_AGG 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.