Что нибудь вроде arrayToColumns() ?
Ожидаемое поведение, например:
SELECT arrayToColumns(nums) FROM
(SELECT [1, 2, 3] nums
UNION ALL
SELECT [5,6] nums)
Результат:
┌─nums_1─┬─nums_2─┬─nums_3─┐
│ 1 │ 2 │ 3 │
│ 5 │ 6 │ 0 │
└────────┴────────┴────────┘
нет и не появится, в SQL есть ограничение накладываемое самой реляционной алгеброй, кол-во колонок должно быть одинаковым во всех строках, и кол-во, имена, и типы колонок известны до выполнения запроса.
т.е. если я знаю заранее, что в колонке количество элементов не превышает N, и хардкорно пропишу все колонки от nums[1]..nums[N], то это работает, но тоже самое сделать налету никак не получится? даже если условно в подзапросе находить max(length(nums)) и использовать как параметр к arrayToColumns(array[, columns_num])?
сейчас нету такой функции, но сделать можно конечно такую
спасибо! жаль не умею) буду следить за changelog, вдруг кто решит реализовать
по-моему эта штука называется кросс-таблица, вот например https://help.loginom.ru/userguide/processors/transformation/cross-table.html
не совсем, потому что кол-во строк для случая с массивом не меняется. проще бекенд / UI научить этому преобразовывать / отображать массив.
Обсуждают сегодня