Используйте случай, когда и рассчитывать на выбор - PullRequest
0 голосов
/ 16 мая 2018

пожалуйста, сообщите.Необходимо добавить в Выбрать одно значение, объединенное из нескольких столбцов.У меня есть столбец dtmStartProcess (здесь дата) и intProcessAfterDays (здесь число).

Необходимо получить значение EstimatedAfterProcess, в котором есть условие, CASE WHEN значение счетчика в intProcessAfterDays до dtmStartProcess ELSE значение в intProcessAfterDays is NULL добавить 15 дней.

Не уверен, как это сделать.

Спасибо

1 Ответ

0 голосов
/ 16 мая 2018

Несколько возможных выражений для достижения этого.

Лично я бы сделал что-то подобное

 SELECT t.dtmStartProcess + INTERVAL IFNULL(t.intProcessAfterDays,15) DAYS AS dtmAfter 
      , t.dtmStartProcess
      , t.intProcesAfterDays
      , ...
   FROM mytable t 
  WHERE ...

IFNULL можно заменить эквивалентным CASE выражением

 CASE WHEN t.intProcesAfterDays IS NULL THEN 15 ELSE t.intProcessAfterDays END

По сути, мы берем значение datetime и добавляем к нему интервал.

  dtmStart + INTERVAL 2 DAYS

Вместо литерала 2 мы используем выражение.

Мы также можем использовать функцию DATE_ADD или ADDDATE для достижения эквивалентного результата.

  DATE_ADD(dtmStart,INTERVAL 2 DAYS)

или

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