Question

Ceci est une expression SQL Server Integration Services (SSIS) question (je suis assez nouveau pour elle).

Je voudrais écrire une expression switch / case dans une colonne dérivée transformation - essentiellement la nouvelle colonne peut avoir 5 différentes valeurs possibles, en fonction de la valeur d'une colonne d'entrée. Tout ce que je suis arrivé de Google est la (condition)? (Valeur réelle): technique (valeur false), mais cela ne fournit que deux valeurs possibles. Est-ce que les expressions SSIS ont une expression de type commutateur / cas?

Je pensais que l'utilisation séquentielle de colonne dérivée transforme, ou la création d'une table de consultation temporaire, mais que tout semble plus compliqué qu'il ne devrait vraiment être.

Merci.

Était-ce utile?

La solution

Je l'ai utilisé l'équivalent d'une instruction if-elseif-else pour résoudre le problème, comme ceci:

(condition1)? (True valeur1): (condition2)? (True valeur2): (false)

Autres conseils

Bien que, techniquement, la réponse par avesse travaillera, l'écriture / le maintien de l'expression n'est pas la tâche la plus intéressante.

Pour éviter d'écrire des expressions complexes dans la transformation de colonne dérivée, je vous recommande d'utiliser une transformation de script. Faire qui vous permet d'utiliser le code .NET pour écrire un déclaration du commutateur, beaucoup plus agréable à écrire et à maintenir. Vos collègues apprécieront!

structurer simplement votre: déclarations comme empilés

@[User::SomeVariable] == 2 ? "SomeVariable is 2"
:
@[User::SomeVariable] == 3 ? "SomeVariable is 3"
:
@[User::SomeVariable] == 4 ? "SomeVariable is 4" 
:
"SomeVariable is not 2,3,4 is actually" + @[User::SomeVariable] 
scroll top