1
我正在使用代碼將特定數據從行轉移到列,當我在小樣本中使用它時,它工作正常,但對於約3.4百萬行的原始樣本它回答這樣的:SQL Server 2016轉置某些數據從行到列
消息511,級別16,狀態1,2號線
無法創建大小36912的一排這比8060
允許的最大行尺寸更大(更詳細信息:) SQL Server 2008: Rows into columns in a dynamic way "HELP" with the code
代碼:
declare @sql nvarchar(max);
declare @fields nvarchar(max);
set @fields=stuff((select ',['+column0+']'
from dll_ptbv
where column0 not in ('Code','Mnemonic')
group by column0
order by case when column0='Name' then 0 else 3 end
,column0
for xml path('')
,type
).value('.','nvarchar(max)')
,1 ,1 ,'');
[email protected]='select'[email protected]
+ 'from (select column0
,column1
,sum(rn1*rn2) over(order by rn2) as rn
from (select column0
,column1
,case when column0=''Name'' then 1 else 0 end as rn1
,row_number() over(order by (select null)) as rn2
from dll_ptbv
) as a
) as a
pivot (max(column1) for column0 in ('[email protected]+')) as p
order by [Name]';
execute sp_executesql @sql;
你們是不是在任何地方插入你的結果是否可行? – GarethD
你是什麼意思「insert .. anywhere?」 –
我的意思是你將它們插入表格中(臨時或永久)。這個錯誤通常是由於IN_ROW_DATA超過8kb而試圖插入一行造成的。 – GarethD