【发布时间】:2020-11-16 03:09:11
【问题描述】:
当我使用 divide(Decimal v1,Decimal v2) 并且 v2 来自子查询时,如何避免 DB::Exception: 在 clickhouse 中除以零。 我尝试使用 case when v2 = 0 then 0 else 除 end 但没有用!
【问题讨论】:
-
能否提供您的 sql-query 和 ClickHouse 版本?
标签: clickhouse
当我使用 divide(Decimal v1,Decimal v2) 并且 v2 来自子查询时,如何避免 DB::Exception: 在 clickhouse 中除以零。 我尝试使用 case when v2 = 0 then 0 else 除 end 但没有用!
【问题讨论】:
标签: clickhouse
条件运算符(if/case/ternary)总是计算所有分支
https://github.com/ClickHouse/ClickHouse/issues/4411#issuecomment-464329721
【讨论】:
我使用standard CASE WHEN避免了被零除:
CASE WHEN Quantity > 0 THEN Quantity ELSE 1 END
或 ClickHouse 函数:
multiIf(Quantity > 0, Quantity, 1)
【讨论】: