Concaténer des colonnes à l'aide de la colonne dérivée dans ssis
Ce que je suis en train de réaliser est Column 5
:
Column 1 Columns 2 Column 3 Column 4 Column 5
A B D A|B|D
J'ai utilisé une colonne dérivée:
(DT_STR,50,1252)([A] + "|" + [B] + "|" + [C] + "|" + [D])
Mais j'ai fini avec:
Column 1 Columns 2 Column 3 Column 4 Column 5
A B D A|B||D
J'ai du mal à trouver la bonne solution.
Vous devez vous connecter pour publier un commentaire.
Cela devrait faire l'affaire:
Fondamentalement, vous avez besoin de vérifier une valeur vide dans chaque colonne et de les enchaîner avec soit une chaîne vide ou le contenu de la colonne, et en option un séparateur en fonction de l'emplacement des colonnes.
Votre problème, c'est qu'une colonne vide de données et que vous n'avez pas fait d'essayer de les vérifier ou de le manipuler dans votre concaténation.
Si vous savez que vous ne pourrez jamais avoir une colonne vide dans une rangée, l'expression suivante serait de le corriger. Il ajoute simplement un
REPLACE
appel à la chaîne résultante à faire le double des tuyaux dans un seul tuyau.Sinon, vous allez avoir besoin de vérifier pour voir si la colonne a une valeur, et seulement alors pouvez-vous ajouter le délimiteur. Que j'avais de suite dans une expression comme suit
Donné les données d'exemple suivantes
Généré les résultats suivants
À ce point, je serais probablement passer la colonne dérivée et de l'utilisation d'un Composant de Script pour générer la concaténation de données. L'Expression de ce livre sont des problèmes de maintenance. De Plus, les scripts ci-dessus ne sont pas comptabilisés dans les valeurs Null.