У меня есть две таблицы, где только один столбец одинаков. Я пытаюсь написать хранимую процедуру, которая извлекает значение из переданного имени столбца, но существует только в одной из таблиц. Вот что я написал:
IF EXISTS(
SELECT identifier FROM TableA WHERE identifier='12345')
SELECT ColumnWhichOnlyExistsInA FROM TableA WHERE identifier='12345'
ELSE
SELECT ColumnWhichOnlyExistsInA FROM TableB WHERE identifier='12345'
Это дает мне сообщение об ошибке «Недопустимое имя столбца» в последней строке, даже если оператор IF верен, и он должен только извлекать данные из TableA. Я заметил, что если я заменю два нижних оператора SELECT хранимыми процедурами, которые делают то же самое, это работает; SQL не пытается выполнить тот, где IF ложно.
Я хочу сохранить все в одной хранимой процедуре. Как лучше всего это сделать?