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


原數據

想要把兩列進行拆分變成:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM