POSTGRES IF не удается - PullRequest
       8

POSTGRES IF не удается

2 голосов
/ 09 ноября 2010

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

9 голосов
/ 09 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...