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

时间:2019-02-24 06:57:48

标签: postgresql

我正在学习Postgres。当我不写下其他陈述时,我的表什么也不返回。我试图在boolean为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

1 个答案:

答案 0 :(得分:0)

一个简单的带有适当括号的AND/ OR很明显,并且比CASE表达式更好,可以检查JOIN的WHERE子句/ ON部分中的条件组合

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
 );