Как объединить несколько таблиц из базы данных, имена которых заканчиваются одинаковыми символами? - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь объединить более 30 таблиц в моей базе данных, не перечисляя их все.Все они заканчиваются одинаковыми последними четырьмя символами в своем имени.

Я попытался перечислить их все, но мне нужен более эффективный способ идентифицировать все таблицы, заканчивающиеся четырьмя символами.Я попытался найти способ поиска по названию таблиц.

select * from [dbo].[AL2019CLFC]
  union
  select * from [dbo].[AR2019CLFC]
  union 
  select * from [dbo].[AZ2019CLFC]

.....

Я ожидаю, что способ определить последние четыре символа "CLFC" извсе таблицы и объединить их.

1 Ответ

1 голос
/ 01 апреля 2019

Я бы посоветовал сделать запрос из системного списка таблиц и создать оператор SQL.Затем скопируйте результаты обратно в окно запроса.Технически вы можете создать хранимую процедуру, которая будет создавать строку, а затем запускать executetesql для получения результатов.

Примечание. В приведенных ниже примерах будет получено ключевое слово UNION, которое следует удалить.Опять же, если вы хотите стать более любопытным, вы можете воспользоваться этим, но, надеюсь, этого будет достаточно, чтобы вы начали.

MS SQL Server:

select 
'SELECT * FROM ' + name + ' UNION ' query
from sys.tables
where name like '%CLFC'

Oracle:

select 
'SELECT * FROM ' || table_name || ' UNION ' query
from user_tables
where table_name like '%CLFC'
...