为什么我不能使用select查询的结果作为另一个selecr查询中表的名称?

时间:2016-12-21 14:22:55

标签: sql sql-server

这是我的代码:

SELECT * FROM (select area from clubs where CLUB = 'AVR')

我想使用de second select中的resut作为第一个选择的表名,但sql server不接受此代码。请帮助:(

1 个答案:

答案 0 :(得分:2)

您应该可以这样做,但只能使用动态SQL。首先,我将子查询的结果分配给会话变量,然后使用它来构建动态SELECT *查询。

SET @TableName = (SELECT TOP(1) area from clubs where CLUB = 'AVR')
SET @SQLQuery = 'SELECT * FROM ' + @TableName
EXECUTE sp_executesql @SQLQuery

我已将TOP(1)添加到子查询中,以确保只返回一个表名。