子查询结果作为下一次查询的表名,这个sql语句该怎么写啊,不用exec

如题所述

select * from (select * from table1) a inner join table2 b on a.id=b.id
这不就是作为了外层查询的表名吗追问

其实我是想根据子查询得到外层要查询的表名,然后查询此表名得到外层查询的结果

追答

啊,这个还真不行,因为sqlserver中要求表名及列名是常量,不能为变量
你还是要用exec(@sql)或者exec sp_executesql @sql

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-29
select * from (select * from table) a where ....追问

这样查询的结果还是子查询的结果,不行的

第2个回答  2012-08-29
完全没懂你的意思追问

就是怎么把子查询的结果(仅有一个)作为外层查询的表名

相似回答