Como escrever a expressão do switch/caixa do SSIS?
-
18-09-2019 - |
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.
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]