Я столкнулся со странностью, комбинируя insert, make_date и case.Я работаю на сервере postgre с версией 9.5.
Вот абстрактная версия моего кода:
значение - varchar, а дата - дата.
INSERT INTO Table (value, date)
SELECT othervalue,
(SELECT MAKE_DATE (
SELECT MIN(...),
CASE
WHEN 1 THEN 0
WHEN 2 THEN 1
END,1)) FROM OtherTable
GROUP BY value
Секция SELECT выполняет свою работу правильно (возвращает значение и правильно построенную дату)
EDIT: под этим я подразумеваю, что SELECT othervalue (SELECT Make_Date (..)) работает правильно при запуске.Это когда INSERT INTO (SELECT othervalue, (SELECT Make_Date (..))) вставляет значение, но ноль для даты.
Странно (для меня), что INSERT вставляет NULL для даты.
Что вызывает такое поведение?