首页 > 解决方案 > Postgres query is not null 似乎是在结果中返回空值

问题描述

下面是在 Postgres 中运行的 SQL 查询及其相应的输出。

在此处输入图像描述

“前提Id”列的数据类型是文本,相当于varchar(没有任何长度说明符)。所以我的查询是为什么结果在指定列中包含空值?

使用的 Postgres 版本是 10.11。

标签: postgresql

解决方案


SQL 中的单引号表示字符串文字。'premiseId'不是列的名称,它是一个字符串文字。由于该文字不是null,因此将返回表中的所有行。如果要在查询中使用该列,则应在不带引号的情况下引用它:

SELECT * FROM request WHERE premiseId IS NOT NULL
-- No quotes ---------------^-------^

推荐阅读