22,210
社区成员
发帖
与我相关
我的任务
分享
--动态
DECLARE @SQL VARCHAR(8000)--SQL2005+可以用VARCHAR(MAX)代替
SET @SQL=''
SELECT @SQL=@SQL+',STUFF((SELECT ''+''+部位 FROM TB WHERE 物料='''+CAST(物料 AS VARCHAR)+'''FOR XML PATH('''')),1,1,'''')['+CAST(物料 AS VARCHAR)+']'
FROM TB GROUP BY 物料
SET @SQL='SELECT '+STUFF(@SQL,1,1,'')
PRINT @SQL
EXEC(@SQL)
--静态
SELECT
STUFF((SELECT '+'+部位 FROM TB WHERE 物料='料A'FOR XML PATH('')),1,1,'')[料A]
,STUFF((SELECT '+'+部位 FROM TB WHERE 物料='料B'FOR XML PATH('')),1,1,'')[料B]
,STUFF((SELECT '+'+部位 FROM TB WHERE 物料='料C'FOR XML PATH('')),1,1,'')[料C]