NULL
値が未知または未定義であることを示します。NULLは空の文字列(文字が入る列の場合)、またはゼロ(数値が入る列の場合)と等価ではありません。
NULL値を返す式を記述することは可能ですが、NOT NULLまたはPRIMARY KEY制約が指定された列ではNULLは許可されません。したがって、データ統合がいずれかの制約のあるカラムにNULL値を書き込もうとした場合、データベースではその行が却下され、データ統合はそのNULL値を却下ファイルに書き込みます。トランスフォーメーションを作成する際には、必ずNULLについて考慮するようにしてください。
各関数は別々の方法でNULLを扱うことができます。関数にNULL値を渡した場合、ゼロやNULLを返す関数もあれば、NULL値を無視する関数もあります。
Boolean式におけるNull値の扱い
NULL値とブール式を結合する式はANSIに準拠した結果を生成します。以下に例を示します。
- •NULL AND TRUE = NULL
- •NULL AND FALSE = FALSE
比較式でのNULL値
比較演算子を含む式でNULL値を使用した場合、データ統合はNULL値を生成します。ただし、データ統合サーバーサービスのカスタムプロパティ[比較演算子でのNULLの処理]を設定して、比較演算でNULL値をHIGHまたはLOWとして処理するようにデータ統合に指定することもできます。
データ統合が比較式でNULL値を処理する方法を設定するには、[比較演算子でNULLをカスタムDTMとして処理]プロパティを使用します。このプロパティは、式の中での次のような比較演算子の動作に影響します。
=, !=, ^=, <>, >, >=, <, <=
たとえば、次のような式があるとします。
NULL > 1
NULL = NULL
次の表に、データ統合での式の評価方法を示します。
Expression | 比較演算子でのNULLの処理 |
---|
NULL | HIGH | LOW |
---|
NULL > 1 | NULL | TRUE | FALSE |
NULL = NULL | NULL | TRUE | TRUE |
フィルタ条件におけるNULL値
フィルタ条件の評価結果がNULLとなった場合、関数はレコードを選択しません。
NULLと演算子
演算子(文字列演算子 || を除く)を使用した式にNULL値が含まれると、式の評価結果が常にNULLになります。たとえば、次の式を評価した結果はNULLになります。
8 * 10 - NULL
NULLかどうかをテストするには、ISNULL関数を使用します。