在 clickhouse 中,如何在转换失败时 return null 而不是抛出异常?
In clickhouse, how to return null instead of throw exception when casting failed?
如果将字符串值转换为int失败,clickhouse会抛出异常,我如何在转换失败时return null而不是抛出异常?谢谢
SELECT CAST('a' AS Int32)
ClickHouse提供了一套函数来解决:
SELECT
toInt32OrNull('a'),
accurateCastOrNull('b', 'Int32')
/*
┌─toInt32OrNull('a')─┬─accurateCastOrNull('b', 'Int32')─┐
│ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │
└────────────────────┴──────────────────────────────────┘
*/
查看可用函数的完整列表:
SELECT name
FROM system.functions
WHERE name ILIKE '%ornull%'
ORDER BY name ASC
/*
┌─name────────────────────────────┐
│ accurateCastOrNull │
..
│ toUInt8OrNull │
│ toUUIDOrNull │
└─────────────────────────────────┘
*/
如果将字符串值转换为int失败,clickhouse会抛出异常,我如何在转换失败时return null而不是抛出异常?谢谢
SELECT CAST('a' AS Int32)
ClickHouse提供了一套函数来解决:
SELECT
toInt32OrNull('a'),
accurateCastOrNull('b', 'Int32')
/*
┌─toInt32OrNull('a')─┬─accurateCastOrNull('b', 'Int32')─┐
│ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │
└────────────────────┴──────────────────────────────────┘
*/
查看可用函数的完整列表:
SELECT name
FROM system.functions
WHERE name ILIKE '%ornull%'
ORDER BY name ASC
/*
┌─name────────────────────────────┐
│ accurateCastOrNull │
..
│ toUInt8OrNull │
│ toUUIDOrNull │
└─────────────────────────────────┘
*/