mysql - 如何使用 CASE 语句获取空结果集?

标签 mysql vertica

我无法在 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/

相关文章:

php - 从一种表单插入多个表(mysql 和 PHP)

java - 在 Java Web 应用程序 servlet 中使用 MySQL 类

sql - Vertica SQL 在一条语句中插入多行

python - 向使用 Python 的每个人授予对 Vertica SQL 表的访问权限

mysql - 选择具有最新日期和外键的 id

mysql - 插入查询不适用于具有外键的行

php - 如何使用变量从php mysql中的两个表中减去

c - 如何调整 Vertica ODBC 驱动程序性能?

sql - 从 Datagrip 连接到 Vertica

sql - 如何在表格中减去今天的日期(或查找天数间隔)?