PostgreSQL在订购时除以零

时间:2010-11-01 09:26:21

标签: postgresql sql-order-by divide-by-zero

我需要在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语句来检查零并用任何数字替换它们。 再次按顺序中的错误。

谢谢

2 个答案:

答案 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怎么样?