最好是动态处理DECLARE @SQL VARCHAR(MAX)
SET @SQL='SELECT ROW_NUMBER()OVER(ORDER BY item)RN,item'
SELECT @SQL=@SQL+',SUM(CASE WHEN item='''+item+'''THEN price ELSE 0 END)['+item+']'
FROM TB
GROUP BY item
SET @SQL=@SQL+'FROM TB GROUP BY item'
EXEC(@SQL)TB换成你的表