#clickhouse
#clickhouse
Вопрос:
Я сделал простой запрос для тестирования функции JSONExtractRaw, но безуспешно:
выберите JSONExtractRaw(j, ‘data’) из (выберите * из devices format JSON) в качестве j;
Но это не работает из-за «синтаксической ошибки». Это ошибка или это ожидаемо?
Комментарии:
1. Ожидается, что предложение behavior — FORMAT может быть применено только к внешнему запросу SELECT.
Ответ №1:
В версии 20.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}]" │
└────────────────┘