如何在Postgres中不运行else语句?

问题描述 投票:0回答:1

我正在学习Postgres。当我没有写下else语句时,我的表没有返回任何内容。当布尔值为false时,我正在尝试渲染所有用户。

SELECT * FROM users u
JOIN posts p
ON u.id = p.author_id
    AND CASE WHEN true   // if true then render u.id = 5
        THEN  u.id = 5
        ELSE  ???        // else render all users
    END
postgresql
1个回答
0
投票

一个简单的AND/ OR与正确的括号是明确的,并且优于CASE表达式来检查WHERE子句/ ON部分JOIN中的这种条件组合

SELECT * FROM users u
  JOIN posts p
ON u.id = p.author_id AND 
(
   ( some_condition = true AND u.id = 5 )
OR   some_condition = false
 );
© www.soinside.com 2019 - 2024. All rights reserved.