не LowCardinality?
Что вы хотите сделать
я создаю таблицу запросом к другой, там есть LowCardinality(String) поле, в запросе преобразую эту строку к инту, и ловлю ошибку - Creating columns of type LowCardinality(Int32) is prohibited by default, а я хочу получить обычный инт
Звучит странно, а зачем вы int преобразуете в LowCardinality ?
я сам не преобразую, кликхауз его так воспринимает, если я правильно понимаю, то потому что стринг который приводится к инту - LowCardinality
просто сконвертируйте в toInt32
у меня явно указано toInt32(...) as my_field, в итоге получаю ошибку что у меня лоу кардиналити инт
ок, пошел смотреть )
create table test( my_string_field LowCardinality(String) ) Engine=Memory create table test2 Engine=Memory as ( select toInt32(my_string_field) from test) даже без данных воспроизводится
попробуйте cast https://fiddle.clickhouse.com/4e28e280-c29e-4f78-8db2-4c9aa57808ed
так работает, спасибо, но интересно поч клик никак не документирует такое поведение
Вообще-то есть вот такая фраза в доке: To convert data from the LowCardinality data type use the CAST function. https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions/#tolowcardinality но вообще, да - может быть непонятно при использовании toInt32(). у вас ошибка было это ведь тоже своего рода документация:)
Обсуждают сегодня