如果该行不存在,我如何从 pgsql 中的查询返回“0”?像
SELECT IF EXISTS(field) THEN field ELSE 0 FROM table
我不完全理解您想要获得什么结果,但是如果您想从表中某行的字段中获取值,如果没有行则为 0,请尝试:
select coalesce((select field from table limit 1), 0)
如果您有一些可能返回 1 行或什么都不返回的表的过滤条件,请尝试以下查询:
select coalesce((select field from table where <your condition>), 0)
SELECT CASE WHEN EXISTS (SELECT 1 FROM table WHERE xxx) THEN 1 ELSE 0 END
但是你的问题谈到存在于一个字段而不是一行。如果您只是与 NULL 进行比较,并考虑到“如果它存在”,那就是:
SELECT CASE WHEN field IS NULL THEN 0 ELSE 1 END FROM table
(当然,如果你真的想要 '0' 字符串,只需在返回值周围加上单引号。