“param1.param2.param3” и тп
Хочется сделать запрос чтобы нумеровать их по уровню
1 | param1
2 | param1.param2.
3 | param1.param2.param3
не могу придумать как сделать такой запрос. можете подскажете?
Считать кол-во точек в строке?
Типа уровень вхождения в дерево. Если разделить по точкам
SELECT length(extractAll('param1.param2.param3', '\\.')) ┌─length(extractAll('param1.param2.param3', '\\.'))─┐ │ 2 │ └───────────────────────────────────────────────────┘
Спасибо Наверное не правильно выразился. Как развернуть это типа из одной строчки param1.param2.param3 получить три в выдаче 1 | param1 2 | param1.param2. 3 | param1.param2.param3
ниче не понял. Что на входе-то?
вход: param1.param2.param3 выход: 1 | param1 2 | param1.param2. 3 | param1.param2.param3 вход: param1.param2.param3.param4 выход: 1 | param1 2 | param1.param2. 3 | param1.param2.param3 4 | param1.param2.param3.param4
SELECT arrayJoin(arrayMap((x, i) -> arrayStringConcat(arraySlice(s, 1, i), '.'), s, arrayEnumerate(s))) FROM (SELECT splitByChar('.', 'param1.param2.param3') s)
Обсуждают сегодня