Если заявление Postgres - PullRequest
       10

Если заявление Postgres

0 голосов
/ 24 января 2020

Я больше не могу решить свою проблему, пожалуйста, я хочу сделать выбор, но только если дата ниже 11.05.1990 должна занять 01.01.2000 и сделать выбор

select (date, champ1 , champ2, champ3, 
CASE
when (a.date <'1990-05-11') then (a.date ='2000-01-01') 
else a.date 
END as a.date 
from table a 

1 Ответ

2 голосов
/ 24 января 2020

Вы не можете использовать CASE таким образом. Если вы хотите динамически заменить некоторые значения чем-то другим, вам нужно вернуть это значение в части THEN, а не сравнение (которое возвращает логическое значение).

В следующем предполагается, что a.date определяется с типом данных date

select date, champ1, champ2, champ3,
       case 
           when a.date < DATE '1990-05-11'  
               then DATE '2000-01-01'
           else a.date
       end as "date"
from table a 
...