在Postgres WHERE子句中使用IF语句

时间:2015-08-26 16:21:04

标签: sql postgresql

我有一张包含用户记录的postgres表。我想选择last_visit时间戳在上周内的所有记录,或者在上周创建帐户的所有记录。但是,如果用户尚未访问,则last_visit时间戳为空(是的,我知道 - 它未设置为默认为帐户创建日期)。

所以我需要选择 last_visit在上周的所有记录OR,如果那是空的,creation_date在最后一周周。

像这样的东西,虽然这不起作用(我尝试过的其他可能的语法也没有尝试过:

SELECT * FROM users 
WHERE 
IF (users.last_active IS NULL) THEN
value(users.last_visit,timestamp(users.creation_date)) < current timestamp - 7 days
ELSE 
users.last_active < current timestamp - 7 days
END IF

有什么建议吗?

0 个答案:

没有答案