Вы не можете сделать условное соединение таким образом.
Вы можете просто сделать обычное левое соединение.Если ни одна строка не соответствует критериям объединения, эти столбцы будут иметь значение NULL:
Select *
from table a
left Join table b on a.id = b.id
left Join table c on a.id = c.id
left Join table d on a.id = d.id
. Столбцы b. * Могут быть NULL, или столбцы c. * Могут быть NULL, либо столбцы d. * Могут быть NULL.
Если вам нужно выбрать первый столбец, отличный от NULL, используйте COALESCE:
Select *, COALESCE(b.SOMECOLUMN, c.SOMECOLUMN, d.SOMECOLUMN) AS SOMECOLUMN
from table a
left Join table b on a.id = b.id
left Join table c on a.id = c.id
left Join table d on a.id = d.id
Как сказали комментаторы, если таблиц не существует, это не сработает.Я думаю, что я бы на самом деле выступил за то, чтобы идти вперед и создавать таблицы, чтобы ваши схемы всегда соответствовали ожиданиям.Динамический SQL - трудная задача для поддержки и отладки, и статический SQL и схемы могут быть опрошены, чтобы гарантировать их соответствие ожиданиям с использованием метаданных (т. Е. Процедура или представление не будут действительными, если таблица отсутствует, а зависимости могут просматриваться явно)