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ステートメントを使用してゼロをチェックして任意の数値に置き換える方法はありますか?また、orderby句のエラー。

ありがとう

4

2 に答える 2

9

CASEステートメントを使用します。

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

必要に応じて、を使用することもできNULLS LASTます。

于 2010-11-01T10:25:06.373 に答える
0

どうwhere rates_count != 0ですか?

于 2010-11-01T09:28:16.887 に答える