我试图这样做,
((PREPAYMENT_AMT!= null时的情况)然后0其他(PREPAYMENT_AMT)END)
为什么它仍然无效?
答案 0 :(得分:0)
因为如果它不是null,你将它改为0。你需要AMT == null
答案 1 :(得分:0)
我知道在SQL中,null不等于任何东西,因为它是未知值。一个人怎么能和另一个人不等?这没有道理。有特殊的运算符来处理null。
(case when (PREPAYMENT_AMT IS NULL) then 0 else (PREPAYMENT_AMT) END)
大多数SQL语言中还有一些函数可以执行您想要的操作。在MS SQL Server中,ISNULL(PREPAYMENT_AMT, 0)
将执行您想要的操作。在MySQL中,它是COALESCE(PREPAYMENT_AMT, 0)
。
您应该知道我不知道ireport是什么,所以请检查您的文档以了解如何处理空值。