Ноль не возвращается в DB2, когда запрос select не дает результата - PullRequest
1 голос
/ 20 марта 2019

Я выполняю приведенный ниже запрос выбора в SSIS, который использует соединение DB2.

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

Когда этот запрос не дает результата, я получаю приведенную ниже ошибку в SSIS.

указан набор результатов из одной строки, но строки не возвращены.

Поэтому я пытаюсь вернуть 0 в DB2 вместо 'blank / no result'.Я попробовал следующее.

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;

Но все, что не дает результата.

Как я могу вернуть 0 в DB2?

1 Ответ

3 голосов
/ 20 марта 2019

Предположительно, результат не возвращается, потому что tbl.Index. Попробуйте это:

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

Возникает вопрос, почему вы не просто делаете:

SELECT COUNT(*)  AS NoOfDest
FROM tbl.Test;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...