2010-11-09 2 views
1

Я новичок в условных заявлениях в 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 '... 

Могу ли я использовать его как это или то, что я делаю неправильно?

ответ

8

IF не является частью синтаксиса 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.

Смежные вопросы