从表中获取基于表名的数据作为另一个表中的字段值

时间:2016-12-19 14:43:19

标签: sql sql-server

如何通过从Table_1中选择id来从不同的表中进行选择。

我尝试使用

SELECT * FROM (SELECT Table_Name FROM Table_1 WHERE id = 1)

打印来自topics_tbl的所有记录。

表1:

id  Table_Name      
1   topics_tbl
2   teachers_tbl

topics_tbl:

id topics
1  English
2  Math
3  Science

teachers_tbl:

id first_Name last_Name
1  John       Dowe
2  Joe        Smith 
3  Mary       Lee

1 个答案:

答案 0 :(得分:3)

您可以创建如下的动态查询,并在EXECUTE sp_executesql

的帮助下执行它
DECLARE @tableName VARCHAR(256), @sqlString VARCHAR(MAX);

SELECT @tableName=Table_Name FROM Table_1 WHERE id = 1;

SET @sqlString = 'SELECT * FROM ' + @tableName;

EXECUTE sp_executesql @sqlString

sp_executesql