从SQL Server存储在列列表或多个表中选择

问题描述 投票:1回答:1

因为它太复杂了,解决没有真正的数据这个问题,我会尝试添加一些:

               |       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 =“约翰”提取的行。

当我们已经拥有了一个名为[table_names]与存储在列[column_table_name] n个表名称表。

现在,我们想要做这样的事情:

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

表名称是动态的,因此未知的,直到我们运行INFORMATION_SCHEMA.TABLES查询。

这个最终的查询是给我的错误。有关如何在子查询中使用多个存储表名的任何线索?

sql-server ssms
1个回答
1
投票

您需要将您的别名子查询,以引用它。加名应该是TABLE_NAME

SELECT [table_name]
FROM (SELECT [table_name]
      FROM INFORMATION_SCHEMA.TABLES) AS X
WHERE [table_name] = 'Jonh'
© www.soinside.com 2019 - 2024. All rights reserved.