Bonjour a tous je souhaite "convertir" mon tableau sous un autre format je m'explique

J'ai un tableau sous cette forme suite a un parsing sur une colonne

COLONNE_A | RETSEQ | COLONNE_B
key1 | 1 | parsval1left
key1 | 2 | parsval1rigth
key2 | 1 | parsval2left
key2 | 2 | parsval2rigth
....

en gros je parse une colonne d'un autre tableau en 2 parties qui sont,
parsvalXleft qui est la partie de gauche et bis repetita pour parsvalXrigth
(keyX représente une référence de pièce, parsvalXleft représente un numéro de vente,
et parsvalXrigth représente la ligne du numéro de vente si vous voulez un peu plus de contexte
petite note : comme on vend plusieurs fois la même pièce keyX n'est pas une clé primaire,
je sais pas si ça change grand chose mais je préfère le dire)
et je voudrais le rentrer dans un tableau sous cette forme


COLONNE_A | COLONNE_B | COLONNE_C
key1 | parsval1left | parsval1rigth
key2 | parsval2left | parsval2rigth
......

Si vous voulez la méthode utilisée pour parser la voila
(la fonction je l'ai complètement pompée ailleurs je me rappelle plus vraiment où mais si vous avez quelque chose de plus simple je prend)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
CREATE FUNCTION [dbo].[udf-Str-Parse-8K] (@String varchar(max),@Delimiter varchar(10))
Returns Table 
As
Return (  
    with   cte1(N)   As (Select 1 From (Values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) N(N)),
           cte2(N)   As (Select Top (IsNull(DataLength(@String),0)) Row_Number() over (Order By (Select NULL)) From (Select N=1 From cte1 a,cte1 b,cte1 c,cte1 d) A ),
           cte3(N)   As (Select 1 Union All Select t.N+DataLength(@Delimiter) From cte2 t Where Substring(@String,t.N,DataLength(@Delimiter)) = @Delimiter),
           cte4(N,L) As (Select S.N,IsNull(NullIf(CharIndex(@Delimiter,@String,s.N),0)-S.N,8000) From cte3 S)
 
    Select RetSeq = Row_Number() over (Order By A.N)
          ,RetVal = Substring(@String, A.N, A.L) 
    From   cte4 A
);
 
SELECT start.Part_No,
		 B.*
		FROM PARADEMODW.dbo.Oracle_Report_Brut_Splitted AS start
		cross Apply [dbo].[udf-Str-Parse-8k](start.SO_No_SO_Line_No, '/') As B
		WHERE start.Reference LIKE '%STOCK%' AND Reference NOT LIKE '%PREV%'
Comme je bosse sur SQL server 2014 pas de STRING_SPLIT dispo

Merci a ceux et qui prennent le temps de lire et/ou de répondre
Gardez le feu brûlant dans votre cœur