SQL Server - 从语句中选择?

时间:2016-01-07 14:39:25

标签: sql sql-server

我在SQL Server中有这个查询:

select column
from table_53;

现在,我想从另一张表中得到这个53,所以我想做的是这样的:

select column
from table_(select id from table2);

有没有办法在SQL Server中执行此操作?

3 个答案:

答案 0 :(得分:1)

这绝对不是SQL思考和运作的方式。也许你可以通过编写存储过程来模拟你建议的方法,然后在其中创建SQL语句然后进行评估。但是,这不会非常有效。

更好的方法是将所有单独的表的值存储到一个主表中,并在单独的列tblid中标记它们的编号(例如53)。然后,您始终可以通过查找此tblid来过滤它们。

答案 1 :(得分:0)

您需要动态SQL查询。

declare @sqlQuery = 'select column
from table_(';

set @sqlQuery = @sqlQuery + 'select id from table2)';

EXEC (@sqlQuery)

注意: - 使用动态sql查询的一个缺点是sql注入。我建议有更好的表结构或尝试使用参数化查询。

答案 2 :(得分:0)

是的,你可以,但是使用这样的东西:

DECLARE @ID INT;
DECLARE @QUERY NVARCHAR(MAX);

SELECT @ID = ID FROM TABLE_2;
--IF @ID EQUALS 53 THEN
SET @QUERY = 'SELECT COLUMN FROM TABLE_' + CAST(@ID AS NVARCHAR(10));
-- @QUERY EQUALS TO 'SELECT COLUMN FROM TABLE_53'
EXEC (@QUERY);