为啥我不能将 clickhouse json 函数应用于“FORMAT JSON”查询结果?
Posted
技术标签:
【中文标题】为啥我不能将 clickhouse json 函数应用于“FORMAT JSON”查询结果?【英文标题】:Why I can't apply clickhouse json functions for "FORMAT JSON" query results?为什么我不能将 clickhouse json 函数应用于“FORMAT JSON”查询结果? 【发布时间】:2020-08-21 10:50:13 【问题描述】:我做了一个简单的查询来测试 JSONExtractRaw 函数,但没有运气:
select JSONExtractRaw(j, 'data') from (select * from devices 格式 JSON) 为 j;
但由于“语法错误”,它不起作用。这是一个错误还是预期的?
【问题讨论】:
这是预期行为 - FORMAT 子句只能应用于外部 SELECT 查询。 【参考方案1】:在 v20.7.2.30 中添加了格式化 SQL 输出的函数 - formatRow 和 formatRowNoNewline:
SELECT JSONExtractRaw(j, 'data') AS json
FROM
(
SELECT formatRow('JSONEachRow', *) AS j
FROM
(
SELECT *
FROM
(
/* emulate the test dataset */
SELECT
1 AS id,
'["a": 8]' AS data
UNION ALL
SELECT
2 AS id,
'["a": 2]' AS data
)
)
)
┌─json───────────┐
│ "[\"a\": 8]" │
│ "[\"a\": 2]" │
└────────────────┘
【讨论】:
以上是关于为啥我不能将 clickhouse json 函数应用于“FORMAT JSON”查询结果?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我们不能在 clickhouse 的另一个视图之上制作物化视图?
为啥 const char* 不能与 boost 的 stringstream 和 read_json 一起使用?