2016-06-25 2 views
0

次の条件付き分割式が何をしようとしているかを理解しようとしています。条件付き分割説明

ISNULL(Employee_ID_WD)||

私はSSISを初めて使用していますが、これは誰でも説明できますか?いいえ、それは何ですか?

答えて

2

あなたがそれを分解すると、それは比較的単純な表現です。 Employee_ID_WDがNULLまたはEmployee_ID値がEmployee_ID_WD値ではない場合trueを返し、その後、;簡潔に(DR TL)にそれを置くために

。それ以外の場合は、falseを返します。

詳細:

最初の部分、ISNULL(Employee_ID_WD)は、nullであるEmployee_ID_WDの参照をチェック。そうであれば、式はすぐにtrueを返します。その理由は、その直後の||です。これは論理的または論理的に呼ばれます。多くのプログラミングでこれを見ると、||が真である前にその部分があればすぐに返るような表現をプログラマが望んでいることを示しています。言い換えれば、||の前に何かが本当なら、私があなたが必要とすることを始めます。この表現の何かをチェックするのは意味がありません。移動するために私が知る必要があることを知っています。これは、短絡評価と呼ばれます。 Wiki

Employee_ID_WDがヌルでない場合は、式の次の部分に移動します。

この部分は:

(RIGHT(REPLACENULL(Employee_ID_WD,"0"),LEN(REPLACENULL(Employee_ID,"0"))) 

Employee_ID_WDの右側にある文字をつかんれます。それが要求している文字の数は、(長さ)関数がEmployee_ID上で実行されてから返されるものです。また、両方の部分が、REPLACENULL関数で示されるように、渡される値がnullであるかどうかをチェックしています。 nullの場合は、値が0の文字列が返されます。これは、値の1つがnullの場合に行われ、真の値の比較を取得します。この式のすべての部分でREPLACENULL関数を使用すると、はるかに頑強になります。つまり、データの不一致が何かエラーなしに処理されるか、最終的に一貫した結果が得られます。

上記の結果はREPLACENULL(Employee_ID,"0")と比較されます。上記の部分とこれが等しくない場合(!=は等しくない)、式は真を返します。

SSIS Expression Reference

+0

詳細な回答ありがとうございます。この答えは、私が求めている明確さを提供します。 – Sharktooth