选择查询没有结果时,DB2中不返回零

时间:2019-03-20 09:50:57

标签: sql ssis db2

我正在使用DB2连接的SSIS中运行以下选择查询。

SELECT 
    (SELECT COUNT(*) FROM tbl.Test) AS NoOfDest
FROM tbl.Index
FETCH FIRST 1 ROW ONLY;

此查询无结果时,我在SSIS中收到以下错误。

  

指定了单行结果集,但未返回任何行。

因此,我尝试在DB2中返回0而不是“空白/无结果”。我已经尝试过以下。

SELECT 
    (COALESCE((SELECT COUNT(*) FROM tbl.Test), 0)) AS NoOfDest
FROM tbl.Index
FETCH FIRST 1 ROW ONLY;

SELECT 
    (NVL((SELECT COUNT(*) FROM tbl.Test), 0)) AS NoOfDest
FROM tbl.Index
FETCH FIRST 1 ROW ONLY;

但是一切都没有结果。

如何在DB2中返回0?

1 个答案:

答案 0 :(得分:3)

大概是因为tbl.Index而没有返回结果。试试这个:

SELECT (SELECT COUNT(*) FROM tbl.Test) AS NoOfDest
FROM sysibm.sysdummy1;

这引出了一个问题,为什么您不只是这样做:

SELECT COUNT(*)  AS NoOfDest
FROM tbl.Test;