Fusionner les loggings en un en fonction du numéro de séquence

J'ai datatables suivantes dans ma table SEQUENCE_NUMBER:

NUMBER |BUSINESS_VALUE|TEMP_V|SEQUENCE_NUMBER 123 |10 |10 |1 123 |20 |20 |2 123 |30 |30 |4 234 |40 |50 |1 

Je voudrais transformer datatables comme suit:

 NUMBER|VALUE_1|VALUE_2|VALUE_3|VALUE_4|TEMP_1|TEMP_2|TEMP_3|TEMP_4 123 |10 |20 |NULL |30 |10 |20 |NULL |30 234 |40 |NULL |NULL |NULL |50 |NULL |NULL |NULL 

Donc, en fonction de SEQUENCE_NUMBER, je décide quel numéro de colonne doit être utilisé lors de l'insertion dans une autre table. Savez-vous comment puis-je effectuer ce genre d'opération de "fusion" / "linéarisation" en SQL?

Si vous avez un nombre de valeurs connu (ou maximum) et que vous ne souhaitez pas utiliser DYNAMIC

La sous-requête va UNPIVOT vos données source

Exemple

 Select * From ( Select A.[NUMBER] ,B.* From YourTable A Cross Apply ( values (concat('Value_',[SEQUENCE_NUMBER]),[BUSINESS_VALUE]) ,(concat('Temp_',[SEQUENCE_NUMBER]),[TEMP_V]) ) B(Item,Value) ) src Pivot (max(Value) for Item in ([VALUE_1],[VALUE_2],[VALUE_3],[VALUE_4],[TEMP_1],[TEMP_2],[TEMP_3],[TEMP_4]))pvt 

Résultats

entrez la description de l'image ici