2017-03-29 7 views
3

J'ai la transformation de fololwing en T-SQL:SSIS - Dérivé Colonnes - Cas statment - Charindex et Substring

SELECT [FIELD_A] = case when CHARINDEX('-', FIELD_B)>0 then LEFT(FIELD_B,CHARINDEX('-', FIELD_B)-1) 
    else FIELD_B end, 

Comment puis-je mettre cela en une expression dans l'objet dérivé de la colonne à l'aide SQL Server Integration Services 2014 ?

Cordialement !!!

Répondre

2

Les transformations de colonnes dérivées utilisent la syntaxe SSIS Expression. La syntaxe pour cela fonctionnerait comme suit:

FINDSTRING(FIELD_B, "-", 1) > 0 ? LEFT(FIELD_B, FINDSTRING(FIELD_B, "-", 1)-1) : FIELD_B 

Je ne l'ai pas testé, mais il devrait vous aider à aller dans la bonne direction. Pour le parcourir:

  • FINDSTRING prend 3 valeurs: le texte que vous voulez rechercher, le texte que vous voulez rechercher et l'occurrence que vous voulez rechercher.
  • La logique "If" dans les expressions SSIS est la? et: symboles. Le ? suit l'expression booléenne "If" et le: sépare les expressions "If true" et "If False".
  • Les chaînes littérales dans SSIS Les expressions ont besoin de guillemets autour d'elles.

référence findString: https://docs.microsoft.com/en-us/sql/integration-services/expressions/findstring-ssis-expression

Conditionnel Référence: https://docs.microsoft.com/en-us/sql/integration-services/expressions/conditional-ssis-expression