Pregunta

Esta es una pregunta de expresiones SQL Server Integration Services (SSIS) (soy bastante nuevo).

Me gustaría escribir una expresión de interruptor/caso en una transformación de columna derivada; básicamente, la nueva columna puede tener 5 valores posibles diferentes, en función del valor de una columna de entrada. ¿Todo lo que obtuve de Google es la (condición)? (valor verdadero): (valor falso) técnica, pero esto solo proporciona dos valores posibles. ¿Las expresiones SSIS tienen una expresión de tipo de interruptor/caso?

Pensé en usar transformaciones de columna derivadas secuenciales, o crear una tabla de búsqueda temporal, pero eso parece más complicado que realmente debería serlo.

Gracias.

¿Fue útil?

Solución

He usado el equivalente de una declaración if-elseif-else para resolver el problema, como este:

(condición1)? (Valor verdadero1): (condición2)? (verdadero valor2): (valor falso)

Otros consejos

Aunque, técnicamente, la respuesta de Avesse funcionará, escribir/mantener la expresión no es la tarea más interesante.

Para evitar escribir expresiones complejas en la transformación de la columna derivada, recomendaría usar una transformación de script. Hacer eso le permite usar el código .NET para escribir un cambiar Declaración, mucho más agradable para escribir y mantener. ¡Tus colegas lo apreciarán!

¿Simplemente estructura tus declaraciones?

@[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] 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top