Domanda

Questa è una domanda SQL Server Integration Services (SSIS) espressioni (io sono abbastanza nuovo per esso).

Vorrei scrivere uno switch / case espressione in una colonna derivata trasformare - in pratica la nuova colonna puo 'avere 5 diversi valori possibili, in base al valore di una colonna di input. Tutto quello che ho ricevuto da Google è la (condizione)? (Valore reale): (valore falso) tecnica, ma prevede solo due valori possibili. Does espressioni SSIS hanno un tipo di switch / case espressione?

Ho pensato di utilizzare sequenziale Colonna derivata trasforma, o la creazione di una tabella di ricerca temporanea, ma che sembra solo più complicato che in realtà dovrebbe essere.

Grazie.

È stato utile?

Soluzione

Ho usato l'equivalente di un'istruzione if-elseif-else per risolvere il problema, in questo modo:

(condizione1)? (Vero valore1): (condizione2)? (Vero valore2): (valore falso)

Altri suggerimenti

Anche se, tecnicamente, la risposta Avessé funzionerà, la scrittura / mantenendo l'espressione non è il compito più interessante.

Per evitare di scrivere espressioni complesse nella trasformazione Colonna derivata, mi consiglia di utilizzare una trasformazione Script. Facendo che consente di utilizzare il codice .NET per scrivere un istruzione switch , molto più bello di scrivere e mantenere. I suoi colleghi lo apprezzeranno!

È sufficiente strutturare il:? Affermazioni come impilati

@[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] 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top