我有一个数据库,其中包含一个名为[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
...
这样的事情可能吗?
我知道,子查询是可能的,但是在这种情况下,我不知道该怎么做。
谢谢。
问候 拉斯
答案 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+'')