请教:列转行,但要统计的内容是文字,非数字

FrankLiang 2015-04-30 10:38:06
源数据:


转为:


数据库为sql2005, 之前看过pivot,但需要用聚合函数,故不可,请指点,谢谢!
...全文
138 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
FrankLiang 2015-04-30
  • 打赏
  • 举报
回复
谢谢楼上,是的,字符串用加号串连起来
还在加载中灬 2015-04-30
  • 打赏
  • 举报
回复
MSSQL还没有字符串聚合,你那些相加是字符串加起来的意思吗
--动态
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]

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧