clickhouse:如何选择一些字段作为json对象

deikduxw  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(1)|浏览(567)

点击房屋查询:

select ( select 1 as c11, 'ab' as c12, 78 as c13 ) as c1, 'ooo' as c2
format JSONEachRow

退货:

{"c1":[1,"ab",78],"c2":"ooo"}

是否可以将c1作为对象而不是数组来获取?:

{"c1":{"c11":1,"c12":"ab","c13":78},"c2":"ooo"}

格式jsoneachrow是必需的。

wqnecbli

wqnecbli1#

不幸的是,这是不可能的。select子查询的结果被解释为元组并作为数组输出。
作为一种解决方法,可以将结果展平,如果需要,还可以应用一些后处理。

SELECT c1.1 AS "c1.c11", c1.2 AS "c1.c12", c1.3 AS "c1.c13", c2
FROM (
  SELECT     
      (SELECT 1, 'ab', 78) AS c1, 
      'ooo' AS c2)
FORMAT JSONEachRow
/* result
{"c1.c11":1,"c1.c12":"ab","c1.c13":78,"c2":"ooo"}

* /

相关问题