sql server2008 多表联合查询,其中一张表的表名是另一张表的列值
表CraneTrends结构如下:
其中 TableName字段中存的是另外一张表的表名,不同的CraneType 对应不同的表,现在我想根据CraneType的值来查询其对应的CraneOperation表的内容,但是不知道sql语句应该怎么写,请高手帮帮忙?谢了 SQL?Server 多表查询
[解决办法]
select 'select * from '+tablename
from cranetrends
where cranetype=你传入的参数
[解决办法]
CREATE TABLE TB(CraneType VARCHAR(10), TableName VARCHAR(255))
INSERT TB SELECT '003','CraneOperation3'
DECLARE @sql NVARCHAR(MAX),@CraneType VARCHAR(10)
SET @CraneType = '003'
SET @sql =
(
SELECT N'SELECT * FROM '+QUOTENAME(TableName)
FROM TB
where CraneType = @CraneType
)
--PRINT @sql
EXEC(@sql)