我有一個包含用戶記錄的postgres表。我想選擇last_visit
時間戳在上週內的所有記錄,或者該帳戶是在上週創建的。但是,如果用戶尚未訪問,則last_visit
時間戳記爲空(是的,我知道 - 它未設置爲默認帳戶創建日期)。在Postgres WHERE子句中使用IF語句
所以,我需要選擇所有記錄,其中要麼的last_visit
是在過去的一週,如果是空,其中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
任何意見
你確定你的尖括號指出正確的方法是什麼? –
@DanBracuk:你說得對。這應該是「大於或等於」。謝謝,更正 –
這個問題和其他答案也是錯誤的。 –