Как получить пустой набор результатов с помощью оператора CASE? - PullRequest
1 голос
/ 30 мая 2019

Я не могу получить пустой результат в операторе CASE.Следующий запрос возвращает NULL в результате:

SELECT CASE WHEN ('test' IS NULL) THEN (SELECT 'null_result') ELSE (SELECT 'empty_result' WHERE 1<>1) END;

Я хочу получить пустой результат (без каких-либо строк).

1 Ответ

1 голос
/ 31 мая 2019

Вы можете отфильтровать NULL значения во внешнем предложении WHERE.

SELECT CASE WHEN ('test' IS NULL) THEN (SELECT 'null_result') ELSE (SELECT 'empty_result' WHERE 1<>1) END
WHERE CASE WHEN ('test' IS NULL) THEN (SELECT 'null_result') ELSE (SELECT 'empty_result' WHERE 1<>1) END IS NOT NULL;

или

SELECT *
FROM (
        SELECT CASE WHEN ('test' IS NULL) THEN (SELECT 'null_result') ELSE (SELECT 'empty_result' WHERE 1<>1) END as result_case
) x
WHERE result_case IS NOT NULL;
...