PostgreSQL中的ROUND

时间:2017-09-28 12:32:37

标签: sql postgresql

请告诉我为什么以下代码:

round((CASE WHEN x.sprd_units = 0 then 0 ELSE sum(CASE WHEN d.ver_desc_txt = 'BEST OFFICIAL PROJECTION' THEN d.unit_qty ELSE 0 END) / x.sprd_units)::numeric, 2) as space_units,

返回错误:语法错误在或附近")" 以及正确的语法应该如何 (PostgreSql 8.3) 感谢

1 个答案:

答案 0 :(得分:0)

我认为问题是你有两次CASE用法,但你只有END一次。 另外,我宁愿使用CAST然后使用::numeric因为它与数据库无关,所以我更换了它。

试试这个;

round(CAST(CASE WHEN x.sprd_units = 0 then 0 ELSE sum(CASE WHEN d.ver_desc_txt = 'BEST OFFICIAL PROJECTION' THEN d.unit_qty ELSE 0 END) / x.sprd_units END as numeric), 2) as space_units