首页 > 解决方案 > 为条件逻辑 postgres 返回单独的查询

问题描述

我需要检查表中的字段是否为空并返回单独的结果/如果是则执行不同的查询。这是一般的高级逻辑,但我不知道如何在 Postgres 中运行它。

CASE
  WHEN (select master_user_id from users where id = 88 IS NULL) THEN
    select company_name from users where id = 88;
  ELSE
    select company_name from users where id = (select master_user_id from users where id = 88);
END CASE;

标签: postgresql

解决方案


如果始终有 id =88 的记录但 master_user_id 为空,则可以编写如下逻辑:

select company_name from users 
where id IN (select COALESCE(master_user_id,id) from users where id = 88 )

如果您正在检查记录 id = 88 是否存在,则:

select company_name from users 
where id IN COALESCE((select master_user_id from users where id = 88),88)  

推荐阅读