alibek » 05.06.2008 (Чт) 14:38
IF можно использовать для всего запроса целиком. Выбирать с его помощью только FROM нельзя.
Значит остается только вариант с динамическим SQL, собирается строка с SQL-запросом и запускается оператором EXECUTE.
Но я бы не советовал использовать этот метод, у него есть некоторые особенности. Чаще всего необходимости в таком решении задачи нет и задача просто неправильно сформулирована. Наверняка ее можно решить иначе, без динамического SQL.
Например нужный SELECT сохранить в виде представления или табличной функции, тогда INSERT получится коротким.
Lasciate ogni speranza, voi ch'entrate.