1. 程式人生 > >sql語句之拆分兩列數據為多條

sql語句之拆分兩列數據為多條

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 between 
1 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 between
1 and len(PrjManagerIds) and substring(,+PrjManagerIds,b.number,1)=, where b.type=P) as t2 ON t1.orderId=t2.orderId

sql語句之拆分兩列數據為多條