Вот один из способов сделать это без использования динамического SQL.Допустим, в вашей схеме только 10 возможных таблиц.Затем вы могли бы написать следующий запрос:
select * from table1 where 'table1' in (select "table" from tablenames) union all
select * from table2 where 'table2' in (select "table" from tablenames) union all
select * from table3 where 'table3' in (select "table" from tablenames) union all
...
select * from table10 where 'table10' in (select "table" from tablenames);
Недостаток этого подхода заключается в том, что он требует жесткого кодирования запроса для каждой возможной таблицы.
Я также предполагаю, что select *
имеет смысл, потому что каждая из десяти таблиц будет иметь одинаковое количество и типы столбцов.