Compresser datatables sur un mot key dans le server sql

J'ai une table de test comme celle-ci …

Field A B C END D EF END G H I END 

Je veux compresser ces données sur le mot-key "END" dans ce format …

 Field A|B|C D|E|F G|H|I 

Essayé en utilisant Monarch Pro, mais n'a pas pu get les résultats souhaités. Je ne peux vraiment pas penser à un moyen de démarrer en SQL. S'il vous plaît aider.

Cela pourrait aider.

 DECLARE @WORD VARCHAR(300) SELECT @WORD = COALESCE(@WORD + '|','') + Field FROM [YourTable] SELECT @WORD = REPLACE(@WORD, 'END', '$') SELECT @WORD Field INTO #A ;WITH c(FieldOutput, Field) as ( select CAST(LEFT(Field, CHARINDEX('$',Field+'$')-2) AS VARCHAR(100)), STUFF(Field, 1, CHARINDEX('$',Field+'$')+1, '') from #A where ISNULL(Field, '') <> '' union all select CAST(LEFT(Field, CHARINDEX('$',Field+'$')-2) AS VARCHAR(100)), STUFF(Field, 1, CHARINDEX('$',Field+'$')+1, '') from c where ISNULL(Field, '') <> '' ) select FieldOutput AS Field from c 

MODIFIER

Créé un violon pour tester cela.

Approche de haut niveau:

Utilisez un slider pour parcourir la table rangée par rangée.

Ajoutez-le à une variable temporaire jusqu'à ce que la ligne indique 'END', puis écrivez le contenu de la variable temp sur une ligne d'une table différente.

Itérer jusqu'à ce que vous atteigniez la fin de la table.

Il y a probablement une manière plus élégante, non-basée sur le slider de le faire, mais cela fera le travail.