NULL 値の処理

データベース クエリまたはテーブル間の結合の結果、特定の項目にデータが生成されない場合、通常、結果は NULL 値になります。

概要

Qlik Sense ロジックは、以下を実際の NULL 値として処理します。

  • ODBC接続から返されたNULL

  • データ ロード スクリプトのテーブルの強制連結の結果として作成された NULL

  • データ ロード スクリプトで行われた結合の結果として作成された NULL

  • テーブルに表示される項目値の組み合わせを生成した結果として作成された NULL

注: NullAsValue ステートメントが使用されている場合を除き、これらの NULL 値を関連付けや選択に使用することはできません。

NullAsValue の詳細については、「NullAsValue」を参照してください。

定義用のテキスト ファイルに NULL 値を含めることはできません。

ODBC からの NULL 値の関連付け/選択

ODBC データ ソースから NULL 値を関連付けたり、選択することができます。この目的のために、スクリプト変数が定義されています。次の構文を使用できます。

SET NULLDISPLAY=<sym>;

データ入力の最下位レベルにある ODBC データ ソースのすべての NULL 値の代わりにシンボル <sym> が使用されます。<sym> には任意の文字列を指定できます。

この機能をデフォルト解釈にリセットするには、次の構文を使用します。

SET NULLDISPLAY=;

注: NULLDISPLAY の使用は、ODBC データ ースのデータにのみ影響します。

ODBC 接続から返された NULL 値を空の文字列として Qlik Sense ロジックに解釈させるには、SELECT ステートメントの前に次の構文を追加します。

SET NULLDISPLAY=";

注: '' は、間に何も挟まない 2 つの単一引用符です。

NullDisplay の詳細については、「NullDisplay 」を参照してください。

テキスト ファイルからの NULL 値の作成

テキスト ファイルまたは inline 節に存在する場合に、実 NULL 値として解釈されるシンボルを定義することができます。次のステートメントを使用します。

SET NULLINTERPRET=<sym>;

シンボル <sym> は、NULL として解釈されます。<sym> には任意の文字列を指定できます。

この機能をデフォルト解釈にリセットするには、次の構文を使用します。

SET NULLINTERPRET=;

注: NULLINTERPRET の使用は、テキスト ファイルおよび inline 節のデータにのみ影響します。

NullInterpret の詳細については、「NullInterpret 」を参照してください。

数式における NULL 値の伝達

NULL 値は、いくつかの論理的および妥当な規則に基づいて、数式を介して伝達されます。

関数

一般的な規則としては、関数が定義されている範囲からパラメータが外れると、関数は NULL を返します。

数式 結果
asin(2) の戻り値: NULL
log(-5) の戻り値: NULL
round(A,0) の戻り値: NULL

上記の結果として、評価で必要なパラメータのいずれかが NULL の場合、関数は原則として NULL を返します。

数式 結果
sin(NULL) の戻り値: NULL
chr(NULL) の戻り値: NULL
if(NULL, A, B) の戻り値: B
if(True, NULL, A) の戻り値: NULL
if(True, A, NULL) の戻り値: A

2 番目の規則の例外として、型をテストするための論理関数があります。

数式 結果
isnull(NULL) の戻り値: True (-1)
isnum(NULL) の戻り値: False (0)

算術および文字列演算子

これらの演算子のいずれかの側に NULL が発生した場合は、NULL が返されます。

数式 結果
A + NULL の戻り値: NULL
A - NULL の戻り値: NULL
A / NULL の戻り値: NULL
A * NULL の戻り値: NULL
NULL / A の戻り値: NULL
0 / NULL の戻り値: NULL
0 * NULL の戻り値: NULL
A & NULL returns A

関係演算子

関係演算子のいずれかの側に NULL が発生した場合は、特別な規則が適用されます。

数式 結果
NULL (任意の関係演算子) NULL の戻り値: NULL
A <> NULL の戻り値: True (-1)
A < NULL の戻り値: False (0)
A <= NULL の戻り値: False (0)
A = NULL の戻り値: False (0)
A >= NULL の戻り値: False (0)
A > NULL の戻り値: False (0)