我有BIRT报道的情况.我创建的报告坚持将某些字段显示为空白而不是零.当字段实际上是不返回任何行的子选择时,就会出现这种情况.
例如,如果选择包括:
0 as p3,
Run Code Online (Sandbox Code Playgroud)
然后0显示好.但是,如果选择具有:
(select sum(other_field) from other_table where ...) as p3,
Run Code Online (Sandbox Code Playgroud)
该字段显示为空白.
修改数据以便为子选择存在行会导致显示一个值,即使它们的结果值为零.
所以我认为BIRT以某种方式将子选择返回零行作为NULL(它也显示为空单元格)而不是零.有没有人知道如何强制BIRT显示实际的0而不是空单元格?
我正在使用DB2/z v8,如果有人需要发布DBMS特定的答案,尽管即使是基于其他供应商的建议也会受到赞赏.
当列或表达式可能返回NULL时,尝试使用COALESCE函数强制值.
COALESCE((select sum(other_field) from other_table where ...), 0) as p3,