我有一个查询,其中我从通过子查询形成的表中提取列的总和。
行中的一些东西:
select temp.mySum as MySum from (select sum(myColumn) from mySchema.myTable) temp;
但是,当 temp.mySum 为空时,我不希望 MySum 为空。相反,当 temp.mySum 为空时,我希望 MySum 携带字符串“值不可用”。
因此,我尝试以下列方式使用合并:
select coalesce(temp.mySum, 'value not available') as MySum from (select sum(myColumn) from mySchema.myTable) temp;
但是上面的查询抛出错误消息:
Message: The data type, length or value of argument "2" of routine "SYSIBM.COALESCE" is incorrect.
此消息是由于下面第一个答案中提到的 coalesce 函数的参数 1 和 2 之间的数据类型不兼容。
但是,我在 Jasper 中直接使用此查询将值发送到 Excel 工作表报告:
hashmap.put("myQuery", this.myQuery);
JasperReport jasperReportOne = JasperCompileManager.compileReport(this.reportJRXML);
JasperPrint jasperPrintBranchCd = JasperFillManager.fillReport(jasperReportOne , hashmap, con);
jprintList.add(jasperPrintOne);
JRXlsExporter exporterXLS = new JRXlsExporter();
exporterXLS.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jprintList);
exporterXLS.exportReport();
在 Excel 工作表中,当值不可用时,我将值设为 null。我想在报告中显示“价值不可用”。
这怎么可能实现?
谢谢阅读!