聚合替换

时间:2011-07-26 06:05:32

标签: sql

我必须聚合(求和)度量并将结果舍入为2位小数。如果舍入的结果为0,则期望不显示任何内容,我的意思是结果应该为空。

例如:

round(sum(report.QTY),2)

report.QTY的某些行是非常低的值,例如0.0005等,并且舍入结果为0。 如何将结果显示为null。

我能想到以下几点,

case when round(sum(dl.QTY),2)=0 then null else round(sum(dl.QTY),2) end

我认为这可能不是最好的方式或唯一的方法。感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

SQL Server支持NULLIF

  

如果两个表达式不相等,则NULLIF返回第一个表达式。如果表达式相等,则NULLIF返回第一个表达式类型的空值。

所以你可以使用:

NULLIF(round(sum(dl.QTY),2),0)

相信 most other products also支持

为了将来参考,虽然SQL是一种标准语言,但产品之间存在足够的差异,值得用您使用的实际系统标记您的问题。

答案 1 :(得分:0)

是的,konerak是对的,但是如果你仍然想要使用CASE,那么你可以尝试这样做......也许

dl.QTY< 0.01然后0其他回合的情况(sum(dl.QTY),2)结束

请保留0而不是空值...将有助于获取结果..