DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT TOP 7 CAST(',' + QUOTENAME(c.name) AS NVARCHAR(50))
from tempdb.sys.columns c where object_id =
object_id('tempdb..#MyTempTable')
AND c.name NOT IN ('description')
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
SET @query = 'SELECT * FROM #MyTempTable
UNPIVOT (
Qty FOR Customer_Name IN (' + @cols + ')
) unpvt
WHERE [description] NOT IN (''Grand Total'') ORDER BY [Customer_Name] ASC'
exec sp_executesql @query;
以上是我的代码,我不知道哪个部分会导致错误,但如果我只选择前6级及以下,那就没问题。
我的临时表
IF OBJECT_ID('tempdb..#MyTempTable') IS NOT NULL
DROP TABLE #MyTempTable
SELECT * INTO #MyTempTable FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=E:\Book2.xlsx', 'SELECT * FROM [March$A2:ZZ]')
成功: imagehere
错误: image here