Sql 作为其他查询的结果,使用表名从select语句中获取数据
我在SQL方面不是很完美。 但是我有一个场景,我需要从另一个查询的结果表中获取数据 大概是这样的:Sql 作为其他查询的结果,使用表名从select语句中获取数据,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我在SQL方面不是很完美。 但是我有一个场景,我需要从另一个查询的结果表中获取数据 大概是这样的: select * from (select top 1 col from tableA) 其中top 1 col包含表名 样本数据: 表a: col tableB 表B: col 1 然后您需要使用动态SQL。虽然我经常在应用程序中使用动态SQL,但对于更普通的任务,通常会有更好的解决方案。您是说tableA中的col列包含表名吗?是的,您是正确的。如果您是指col as table nam
select * from (select top 1 col from tableA)
其中top 1 col
包含表名
样本数据:
表a:
col
tableB
表B:
col
1
然后您需要使用动态SQL。虽然我经常在应用程序中使用动态SQL,但对于更普通的任务,通常会有更好的解决方案。您是说tableA中的col列包含表名吗?是的,您是正确的。如果您是指col as table name,则必须以友好方式生成SQL命令(纯SQL中不允许使用select result as table name)正如@GordonLinoff提到的,动态SQL在这里可以工作-您能提供一些示例数据吗?那么您需要使用动态SQL。虽然我经常在应用程序中使用动态SQL,但对于更普通的任务,通常会有更好的解决方案。您是说tableA中的col列包含表名吗?是的,您是正确的。如果您是指col as table name,则必须以友好方式生成SQL命令(纯SQL中不允许使用select result as table name)正如@GordonLinoff提到的,动态SQL在这里可以工作-您能提供一些示例数据吗?太好了。这正是我想要的。太好了。这就是我想要的。
DECLARE @sql NVARCHAR(200);
SELECT TOP 1 @sql = 'SELECT * FROM ' + col FROM tableA
EXECUTE sp_executesql @sql