我对postgres中的条件语句不熟悉。我有以下声明SELECT IF status = 'L' THEN edate ELSEIF status = 'C' THEN 'wrong date' END IF as date FROM campaigns;
但是我收到了错误
ERROR: syntax error at or near "status" at character 11
LINE 1: SELECT IF status = 'L' THEN edate ELSEIF status = 'C' THEN '...
我可以这样使用它,或者我做错了什么?
答案 0 :(得分:9)
IF不是SQL语法的一部分,无法正常工作。使用案例:
SELECT
CASE status
WHEN 'L' THEN edate
WHEN 'C' THEN 'wrong date'
END as date
FROM
campaigns;
聚苯乙烯。如果“edate”的类型为DATE或TIMESTAMP,则必须将此列强制转换为VARCHAR,因为“错误的日期”不是DATE也不是TIMESTAMP。