加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SQL逗号分隔的一列转多行,行转列,列转行

(2019-06-09 20:41:25)
标签:

杂谈

第一种:

SELECT a.id,b.[value]FROM (SELECT id,[value]=CAST(''+REPLACE(字段名,',','')+'' AS xml) FROM 表名) aOUTER APPLY (SELECT [value]=T.C.value('.','varchar(50)') FROM a.[value].nodes('/v') AS T(C)) b

第二种:

SELECT A.[id],Split.a.value('.', 'VARCHAR(100)') AS ProductBarcodeFROM (SELECT [id],      CAST ('' + REPLACE(字段名, ',', '') + '' AS XML) AS String     FROM 表名 ) AS A CROSS APPLY String.nodes ('/M') AS Split(a);

多行转一列:

SELECT STUFF((SELECT ',' + 字段名 FROM 表名 for xml path('')),1,1,'')

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有