我需要在postgres中执行此查询,但我无法摆脱此错误
ERROR: division by zero
SQL state: 22012
这是查询:
select id,rates_sum,rates_count from tbl_node order by rates_sum/rates_count DESC;
我知道我可以为rates_count
添加一个小值但我得到的值不准确。
有没有办法让postgres忽略这个错误,或使用if语句来检查零并用任何数字替换它们。 再次按顺序中的错误。
谢谢
答案 0 :(得分:8)
使用CASE声明:
SELECT
id,
rates_sum,
rates_count
FROM
tbl_node
ORDER BY
rates_sum / (CASE rates_count WHEN 0 THEN NULL ELSE rates_count END) DESC NULLS FIRST;
如果您愿意,也可以使用NULLS LAST
。
答案 1 :(得分:0)
where rates_count != 0
怎么样?