SQL:在FROM子句中通过子查询替换部分查询

时间:2019-07-04 15:44:11

标签: sql sql-server select tablename

我有一个数据库,其中包含一个名为[Table]的表,该表列出了该数据库中的所有表。现在,我想使用一些JOINS编写一个SQL查询,该查询从子查询的[Table]中获取特定的表名以从该表中选择...我希望这不会造成混淆。

所以[Table]看起来像这样:

Out[1]:
                 TAVG              TMAX              TMIN
                 mean median       mean median       mean median
year month
1952 1      29.478261   29.0  32.608696   30.0  28.434783   28.0
     2      24.800000   26.0  29.000000   28.0  18.400000   19.0
     3      13.807692   10.5  26.423077   25.0   1.230769   -4.0
     4      39.607143   38.0  49.035714   48.0  30.285714   30.0
     5      44.666667   44.0  52.555556   54.0  33.629630   34.0

查询应如下所示:

IdTable    Tablename
1          Adress
2          Project
3          User
...

这样的事情可能吗?

我知道,子查询是可能的,但是在这种情况下,我不知道该怎么做。

谢谢。

问候 拉斯

1 个答案:

答案 0 :(得分:0)

在动态代码下尝试执行此操作,以获得预期的结果。

DECLARE @sqlCommand  AS NVARCHAR(MAX)
DECLARE @TableName AS NVARCHAR(MAX)

SELECT @TableName = tablename FROM dbo.[Table] WHERE Type = 12

SET @sqlCommand= N'SELECT * FROM '+@TableName+''

EXEC (@sqlCommand)
  

注意:我猜您想选择Type = 12的TableName,并相应地更改选择和过滤。

您也可以直接执行以下查询,而无需创建命令字符串-

DECLARE @TableName AS NVARCHAR(MAX)
SELECT @TableName = tablename FROM dbo.[Table] WHERE Type = 12

EXEC (N'SELECT * FROM '+@TableName+'')