Как в чёртовом SQL использовать имя столбца, которого в таблице может не быть? Оборачиваю проверку в CASE, но слишком умный парсер-планировщик всё равно разбирает запрос полностью и выдаёт ошибку вне зависимости от того, по какой ветке идёт CASE.
@l29ah Чтобы обрабатывать таблицы разных версий.
WHERE CASE WHEN BlaBlaOptionalColumnPresent THEN OptionalColumn='value' ELSE 1 END
В документации обещают short circuit evaluation, OptionalColumn не должна проверяться при неудаче проверки, но планировщик запроса решает выполнить его сначала, а применить после проверки, и не находит колонку.
@l29ah Именно эта таблица и проверяется, чтобы узнать, можно ли пользоваться дополнительным условием.
Что, весь запрос оборачивать в условие и копипастить с изменением на каждый вариант?
http://stackoverflow.com/questions/30131165/only-perform-update-if-column-exists