дефолтным для его типа?
то есть у меня в столбце строки и вместо проверки ‘какая-то строка’ = ‘’, я бы использовал эту функцию.
Или мб есть какая-то функция, которая возвращает дефолтное значение для типа
Стандартная имплементация на проверку значения втупую через = устраивает, просто мб есть ещё варианты, а то я чёт в доке не увидел/не заметил
SELECT accurateCastOrDefault(NULL, 'DateTime'), accurateCastOrDefault(NULL, 'String'), accurateCastOrDefault(NULL, 'UInt128') Query id: ad0fd10a-0481-43c9-b0de-0e66ecfa2228 ┌─accurateCastOrDefault(NULL, 'DateTime')─┬─accurateCastOrDefault(NULL, 'String')─┬─accurateCastOrDefault(NULL, 'UInt128')─┐ │ 1970-01-01 00:00:00 │ │ 0 │ └─────────────────────────────────────────┴───────────────────────────────────────┴────────────────────────────────────────┘ SELECT accurateCastOrDefault(NULL, toTypeName(dt)), accurateCastOrDefault(NULL, toTypeName(str)), accurateCastOrDefault(NULL, toTypeName(uint)) FROM ( SELECT toDateTime(123) AS dt, 'txt' AS str, toUInt128(123) AS uint ) Query id: 98808baa-e841-4a75-8446-b983914b8794 ┌─accurateCastOrDefault(NULL, toTypeName(dt))─┬─accurateCastOrDefault(NULL, toTypeName(str))─┬─accurateCastOrDefault(NULL, toTypeName(uint))─┐ │ 1970-01-01 00:00:00 │ │ 0 │ └─────────────────────────────────────────────┴──────────────────────────────────────────────┴───────────────────────────────────────────────┘
Любопытно, спасибо Буду утром тестить
defaultValueOfTypeName https://clickhouse.com/docs/en/sql-reference/functions/other-functions/#defaultvalueoftypename defaultValueOfArgumentType https://clickhouse.com/docs/en/sql-reference/functions/other-functions/#defaultvalueofargumenttype
select defaultValueOfArgumentType(today()); ┌─defaultValueOfArgumentType(today())─┐ │ 1970-01-01 │ └─────────────────────────────────────┘ select defaultValueOfTypeName('Date32'); ┌─defaultValueOfTypeName('Date32')─┐ │ 1900-01-01 │ └──────────────────────────────────┘
Вообще то что надо
Обсуждают сегодня