日期:2014-05-17  浏览次数:20548 次

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)