7

これはSQLServerIntegration Services(SSIS)の式に関する質問です(私はこれにかなり慣れていません)。

派生列変換でswitch/case式を記述したいと思います。基本的に、新しい列は、入力列の値に基づいて、5つの異なる可能な値を持つことができます。私がグーグルから得たのは(状態)だけですか?(真の値):(偽の値)手法ですが、これは2つの可能な値のみを提供します。SSIS式にはswitch/caseタイプの式がありますか?

順次派生列変換を使用するか、一時的なルックアップテーブルを作成することを考えましたが、それは実際にはもっと複雑に思えます。

ありがとう。

4

3 に答える 3

15

私はこの問題を解決するためにif-elseif-elseステートメントと同等のものを使用しました:

(条件1)?(真の値1):(条件2)?(真の値2):(偽の値)

于 2009-11-06T12:45:45.727 に答える
5

技術的には、avesseによる回答は機能しますが、式の記述/維持は最も興味深い作業ではありません。

派生列トランスフォーメーションで複雑な式を記述しないようにするには、スクリプトトランスフォーメーションを使用することをお勧めします。そうすることで、.NETコードを使用してswitchステートメントを記述できるようになり、記述と保守がはるかに便利になります。あなたの同僚はそれを高く評価するでしょう!

于 2012-04-18T08:54:50.813 に答える
4

?:ステートメントをスタックとして構造化するだけです

@[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] 
于 2015-06-26T18:36:07.560 に答える