Pergunta

Esta é uma questão de expressões SQL Server Integration Services (SSIS) (sou bastante novo).

Gostaria de escrever uma expressão de comutador/caixa em uma transformação de coluna derivada - basicamente, a nova coluna pode ter 5 valores possíveis diferentes, com base no valor de uma coluna de entrada. Tudo o que recebi do Google é a (condição)? (Valor verdadeiro): (Valor falso) Técnica, mas isso fornece apenas dois valores possíveis. As expressões SSIs têm uma expressão de tipo de troca/caixa?

Pensei em usar transformações de coluna derivadas sequenciais ou em criar uma tabela de pesquisa temporária, mas isso parece mais complicado que realmente deveria ser.

Obrigado.

Foi útil?

Solução

Eu usei o equivalente a uma declaração if-elseif-else para resolver o problema, como este:

(condição1)? (True Value1): (Condition2)? (True Value2): (Valor falso)

Outras dicas

Mesmo assim, tecnicamente, a resposta de Avessa funcionará, escrever/manter a expressão não é a tarefa mais interessante.

Para evitar escrever expressões complexas na transformação derivada da coluna, eu recomendo usar uma transformação de script. Fazer isso permite que você use o código .NET para escrever um trocar declaração, muito mais agradável para escrever e manter. Seus colegas vão apreciá -lo!

Basta estruturar sua ?: declarações como empilhadas

@[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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top