【发布时间】:2014-06-12 17:31:26
【问题描述】:
我有一个使用数据透视函数的以下sql 查询。我不知道我有什么错误
这个查询。请帮我解决这个问题
DECLARE @DEPT VARCHAR(MAX)
SELECT @DEPT=COALESCE('@DEPT+','['+DEPTID+']','['+DEPTID+'])
FROM DEPARTMENTDEMO
DECLARE @QUERY VARCHAR(MAX)
SET @QUERY='SELECT '+@DEPT+'
FROM (SELECT DEPTID
FROM DEPARTMENTDEMO
)AS SOURCETABLE
PIVOT
(DEPTNAME FOR DEPTID IN ('+@DEPT+')
)AS PIVOTTABLE'
EXEC SP_EXECUTESQL @QUERY
【问题讨论】:
-
SELECT @DEPT=COALESCE('@DEPT+','+[DEPTID]+','+[DEPTID]')是错误的,但还有其他问题。这是一个动态的数据透视示例,从中工作:stackoverflow.com/a/23159433/3464852 -
我需要正确的表单。我遇到了一个错误,比如“必须声明标量变量 dept”
-
在我链接的示例中,有一个正确的方法如何获取列列表,您尝试过吗?
-
实际上我发布的语法也是我们在课堂上得到输出的正确语法。但是当我单独尝试时,我只是错过了诸如单引号或连接运算符之类的东西。我不知道我在哪里出错了
-
如果你坚持使用不受支持的语法,这应该可以工作:
SELECT @DEPT=COALESCE(@DEPT+',['+DEPTID+']','['+DEPTID+']')。您在错误的地方引用了引号。
标签: sql sql-server pivot-table