2016-03-24 2 views
0

Я хочу изменить значение select в зависимости от предложения where. Что-то вроде следующего возможно в любом случае?PostgreSQL: использование выражения where для изменения значения выбора

SELECT b 
FROM table 
WHERE 
    IF date = '2016-03-24' 
     b = 1 
    ELSE IF date > date '2016-03-24' - 7 AND date < '2016-03-24' 
     b = 2 
    ELSE 
     b = 1 
ORDER BY date 
LIMIT 1 

ответ

1

Использование CASE WHEN:

SELECT CASE WHEN date = '2016-03-24' THEN 1 
      WHEN date > '2016-03-17' AND date < '2016-03-24' THEN 2 
      ELSE 1 
     END AS b 
FROM table 
ORDER BY b 
LIMIT 1