我必须聚合(求和)度量并将结果舍入为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
我认为这可能不是最好的方式或唯一的方法。感谢任何帮助。
答案 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而不是空值...将有助于获取结果..