【发布时间】:2022-09-23 00:06:16
【问题描述】:
我正在尝试从另一个查询中获取的所有表中获取数据,如下所示:
DECLARE @count int
SET @count = (SELECT COUNT(*) FROM (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE \'%Project%\') AS SUBQUERY)
WHILE(@count!=0)
BEGIN
SELECT * from (SELECT TABLE_NAME from (SELECT TABLE_NAME,
ROW_NUMBER() over (order by table_name) as row_number
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE \'%Project%\') as sub
WHERE row_number = @count) as another_sub;
SET @count = @count-1
end
我现在得到的是 5 个表名,如 \'%Project%\'。我想从所有这 5 个表中获取数据,而不仅仅是它们的名称。我也不想加入或联合这些表。我怎样才能做到这一点?
-
我假设每个表之间的架构是相同的?看起来您想合并任何名称为 \"%Project%\" 的表中的结果?
-
如果您考虑到不同的列名称及其各自的数据类型,您可以将它们一起
UNION。我假设你想要一个结果集? -
我需要每张桌子单独的结果。这些表中的每一个之间的架构都是相同的。
-
那你为什么不写单独的选择语句呢?我不明白这个问题。
-
我为通过 while 循环获得的每个表名编写了单独的选择语句。但现在结果我只得到 5 个表名,而不是它们的数据。我需要这些表中的数据。
标签: sql sql-server