POSTGRES IF语句失败

时间:2010-11-09 14:38:47

标签: postgresql

我对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 '...

我可以这样使用它,或者我做错了什么?

1 个答案:

答案 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。