3

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

谢谢

4

2 回答 2

9

Use a CASE statement:

SELECT 
    id,
    rates_sum,
    rates_count 
FROM 
    tbl_node  
ORDER BY 
    rates_sum / NULLIF(rates_count,0) DESC NULLS FIRST;

You could also use NULLS LAST, if you want to.

于 2010-11-01T10:25:06.373 回答
0

怎么样where rates_count != 0

于 2010-11-01T09:28:16.887 回答