POSTGRES IF语句失败

问题描述:

我是新来的条件语句postgres内。我有下面的语句SELECT IF status = 'L' THEN edate ELSEIF status = 'C' THEN 'wrong date' END IF as date FROM campaigns;POSTGRES IF语句失败

但我得到一个错误

ERROR: syntax error at or near "status" at character 11 
LINE 1: SELECT IF status = 'L' THEN edate ELSEIF status = 'C' THEN '... 

我可以用它像这样还是我究竟做错了什么?

如果不是SQL语法的一部分,则无法工作。使用案例:

SELECT 
    CASE status 
    WHEN 'L' THEN edate 
    WHEN 'C' THEN 'wrong date' 
    END as date 
FROM 
    campaigns; 

Ps。如果“edate”类型为DATE或TIMESTAMP,则必须将此列转换为VARCHAR,因为“错误日期”不是DATE或TIMESTAMP。