プライマリ・コンテンツに移動
Oracle® Big Data Discovery Cloud Service EQLリファレンス

E65371-04
目次へ
目次
索引へ移動
索引

前
次
機械翻訳について

NULL属性値の処理

レコードで属性値が欠落している場合、その属性はNULLと呼ばれます。 たとえば、レコードに価格属性に対する割当が含まれない場合、EQLでは価格値がNULLとして定義されます。

次の表に、EQLが各タイプの操作のNULL値を処理する方法を示します:
操作のタイプ EQLによるNULL値の処理方法
算術演算と非集計関数 NULL値に対する操作の値もNULLとして定義されます。

たとえば、レコードで数量の値が4、価格の値がNULLの場合、Quantity + Priceの値はNULLとみなされます。

集計関数 EQLではNULL値のレコードは無視されます。

たとえば、10件のレコードがあり、そのうち2件に価格属性のNULL値がある場合、すべての集計操作で2つのレコードが無視され、かわりに他の8件のレコードのみを使用して値がコンピュートされます。

すべての10レコードにNULLの価格がある場合、SUM(Price)などの最も多くの集計結果はNULL値になります。

例外はCOUNTCOUNTDISTINCTです。すべてのレコードがNULL値を持つ場合(つまり、COUNTまたはCOUNTDISTINCTがNULLではない場合)は、ゼロを戻します。 ただし、COUNT(1)ではNULL値のレコードがカウントされることに注意してください。

ブール演算子 「ブール演算子」を参照してください。
式のグループ化 EQLでは、どのグループ・キーにもNULL値が含まれるレコードは無視されず、レコードはグループに存在するとみなされます。 NULLグループであっても戻されます。
フィルタ 特定の値に対して比較を実行する場合は、IS NULLフィルタを除き、NULL値は指定されたフィルタと一致しません。
次の点に注意してください。
  • コレクションで直接使用されるフィルタは、中間結果に対するフィルタと同じセマンティクスを持ちます。
  • NOT(x=y)は常に、すべてのフィルタのx <> yと同等です。
たとえば、レコードAに価格5があり、レコードbに価格値がない場合は、次のようになります:
  • WHERE price = 5はaに一致
  • WHERE NOT(price <> 5)はaに一致
  • WHERE price <> 5は、aとbのどちらにも一致しない
  • WHERE NOT(price = 5)は、aとbのどちらにも一致しない
  • WHERE price = 99は、aとbのどちらにも一致しない
  • WHERE NOT(price <> 99)は、aとbのどちらにも一致しない
  • WHERE price <> 99はaに一致
  • WHERE NOT(price = 99)はaに一致
ソート 指定したソート順について、EQLでは次の情報が返されます:
  1. 標準の結果
  2. NaN値のレコード
  3. NULL値のレコード

注意:

NULLのキーワードまたはリテラルはありません。 NULLを作成するには、この例のようにCASEを使用: CASE WHEN False THEN 1 END