SQL Server выбрать из нескольких таблиц, хранящихся в столбце или списке - PullRequest
0 голосов
/ 07 ноября 2018

Поскольку решить эту проблему без реальных данных слишком сложно, я постараюсь добавить:

               |       tables 1       |      table 2        |   ...   |     table n
---------------------------------------------------------------------------------------
columns_name:  |  name | B | C | D    |  name | B | C | D   |   ...   |    name | B | C | D
---------------------------------------------------------------------------------------
column_content:|  John | ...          |  Ben  | ...         |   ...   |    John| ...

Цель состоит в том, чтобы извлечь строки из N таблиц, где name = 'John'.

Там, где у нас уже есть таблица с именем [table_names] с именами n таблиц, которые хранятся в столбце [column_table_name].

Теперь мы хотим сделать что-то подобное:

SELECT [name]
FROM (SELECT [table_name]
      FROM INFORMATION_SCHEMA.TABLES)
WHERE [name] = 'Jonh'

Имена таблиц являются динамическими и, следовательно, неизвестными, пока мы не выполним запрос information_schema.tables.

Этот последний запрос дает мне ошибку. Любая подсказка о том, как использовать несколько имен сохраненных таблиц в подзапросе?

1 Ответ

0 голосов
/ 07 ноября 2018

Вам необходимо создать псевдоним вашего подзапроса, чтобы ссылаться на него. Плюс имя должно быть table_name

SELECT [table_name]
FROM (SELECT [table_name]
      FROM INFORMATION_SCHEMA.TABLES) AS X
WHERE [table_name] = 'Jonh'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...