这种转置怎么写

ah_2056 2015-03-26 05:30:41
SalesCode TeamBelow
CD0001 a,b,c
CD0002 h,i,j


SalesCode TeamBelow
CD0001 a
CD0001 b
CD0001 c
CD0002 h
CD0002 i
CD0002 j


...全文
309 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
还在加载中灬 2015-03-26
  • 打赏
  • 举报
回复

	SELECT T1.SalesCode,T2.V FROM
		(SELECT SalesCode,CAST('<V>'+REPLACE(TeamBelow,',','</V><V>')+'</V>' AS XML)VS FROM TB)T1
		CROSS APPLY(SELECT N.V.value('.','VARCHAR(100)')V FROM T1.VS.nodes('/V') N(V))T2
唐诗三百首 2015-03-26
  • 打赏
  • 举报
回复

create table ah
(SalesCode varchar(10),TeamBelow varchar(10))

insert into ah
 select 'CD0001','a,b,c' union all
 select 'CD0002','h,i,j'


select a.SalesCode,
       substring(a.TeamBelow,b.number,charindex(',',a.TeamBelow+',',b.number)-b.number) 'TeamBelow'
 from ah a,master.dbo.spt_values b
 where b.type='P' and b.number between 1 and len(a.TeamBelow)
 and substring(','+a.TeamBelow,b.number,1)=','

/*
SalesCode  TeamBelow
---------- ----------
CD0001     a
CD0001     b
CD0001     c
CD0002     h
CD0002     i
CD0002     j

(6 row(s) affected)
*/

22,210

社区成员

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

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