我在一些网站上走了一轮,看到解决Dynamic Pivot的(唯一)方法是将查询存储为字符串,然后执行该字符串查询。但是,就我而言,我似乎无法应用此解决方案,因为列数超过了一个字符串的容量。
declare @columns nvarchar(max)
select @columns = COALESCE(@columns + ', ','') + QUOTENAME(name)
from table1
虽然我声明@columns的最大容量,但它仍然没有足够的空间并导致错误。 有没有办法解决这种情况,或者如何构建动态数据透视而不将查询存储为字符串?
答案 0 :(得分:1)
如果您的列名仅包含英文字母,请尝试 Varchar(MAX)而不是Nvarchar(最大)
Varchar(max)最多可容纳2B个数据,而Nvarchar(max)只能容纳4k个字符