PostgreSQL在订购时除以零

ibm*_*khd 3 postgresql sql-order-by divide-by-zero

我需要在postgres中执行此查询,但我无法摆脱此错误

    ERROR: division by zero
SQL state: 22012
Run Code Online (Sandbox Code Playgroud)

这是查询:

select id,rates_sum,rates_count from tbl_node  order by rates_sum/rates_count DESC;
Run Code Online (Sandbox Code Playgroud)

我知道我可以添加一个小值,rates_count但我得到不准确的值.

有没有办法让postgres忽略这个错误,或使用if语句来检查零并用任何数字替换它们.再次按顺序by子句中的错误.

谢谢

Fra*_*ens 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;
Run Code Online (Sandbox Code Playgroud)

NULLS LAST如果你愿意,你也可以使用.