SQL中的列匹配数据功能

时间:2016-12-13 08:32:30

标签: sql sql-server

DECLARE @ompid NVARCHAR(max)
DECLARE @Names VARCHAR(max)

SELECT @Names = COALESCE(@Names + ') as ' + Variable_Name + ' ,AVG(', 'AVG(') + Variable_Name
FROM charttest
WHERE ompid = 125

DECLARE @lastcol NVARCHAR(100) = (
        SELECT TOP 1 (Variable_Name)
        FROM charttest
        WHERE ompid = 125
        ORDER BY Variable_Name ASC
        )
DECLARE @Names2 NVARCHAR(500) = @Names + ') as ' + @lastcol + ''
DECLARE @sql NVARCHAR(500)

SET @sql = 'SELECT  ' + @Names2 + ' FROM ompvaribles'

EXEC (@sql)

这是我的sql查询我已经显示第二个表avg但没有得到第二个表记录。

1 个答案:

答案 0 :(得分:0)

我不确定您的查询实际上没有用处(我假设您收到错误),但为了执行您构建的动态查询,您需要使用:

exec sp_executesql @sql