sql語句之拆分兩列數據為多條
阿新 • • 發佈:2018-01-17
sql ast rom spa row 分享 trac clas img
原數據
想要把兩列進行拆分變成:
sql語句及思路
思路:先分別拆分A列和B列,以行號相等作為條件連接
select ManagerId,Manager from (SELECT ROW_NUMBER() OVER(ORDER BY b.number) as orderId,substring(PrjManager,b.number,charindex(‘,‘,PrjManager+‘,‘,b.number)-b.number) AS Manager FROM [dbo].[CM_Contract] t1 inner join master.dbo.spt_values b on b.number between1 and len(PrjManager) and substring(‘,‘+PrjManager,b.number,1)=‘,‘ where b.type=‘P‘) as t1 inner join (SELECT ROW_NUMBER() OVER(ORDER BY cntName) as orderId,substring(PrjManagerIds,b.number,charindex(‘,‘,PrjManagerIds+‘,‘,b.number)-b.number) AS ManagerId FROM [dbo].[CM_Contract] t1 inner join master.dbo.spt_values b on b.number between1 and len(PrjManagerIds) and substring(‘,‘+PrjManagerIds,b.number,1)=‘,‘ where b.type=‘P‘) as t2 ON t1.orderId=t2.orderId
sql語句之拆分兩列數據為多條