我无法在 CASE
语句中得到空结果。以下查询返回 NULL
作为结果:
SELECT CASE WHEN ('test' IS NULL) THEN (SELECT 'null_result') ELSE (SELECT 'empty_result' WHERE 1<>1) END;
我想得到空结果(没有任何行)。
最佳答案
您可以过滤掉外部 WHERE
子句中的 NULL
值。
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;
关于mysql - 如何使用 CASE 语句获取空结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56372462/