属性の値が、あるレコードから欠落している場合、その属性はNULLと呼ばれます。たとえば、あるレコードにPrice属性の割当てが含まれていない場合は、EQLはこのPriceの値をNULLと定義します。
演算のタイプ | EQLによるNULL値の扱い |
---|---|
算術演算および集計以外の関数 | NULL値に対するどのような演算の値もNULLと定義されます。
たとえば、あるレコードではQuantityの値が4でPriceの値がNULLの場合は、Quantity + Priceの値はNULLであると見なされます。 |
集計関数 | EQLは、NULL値を持つレコードを無視します。
たとえば、10個のレコードがあり、そのうち2個のPrice属性の値がNULLの場合は、どの集計演算でもこの2レコードが無視され、かわりに他の8レコードのみを使用して値が計算されます。 10レコードすべてのPriceがNULLの場合は、SUM(Price)などのほとんどの集計では、結果もNULL値になります。 例外はCOUNTとCOUNTDISTINCTで、すべてのレコードにNULL値がある場合は0が返されます(つまり、COUNTまたはCOUNTDISTINCTの出力がNULLになることはありません)。ただし、COUNT(1)ではNULL値のレコードはカウントされないことに注意してください。 |
ブール演算子 | 「ブール演算子」を参照してください。 |
グルーピング式 | 中間結果からグルーピングするときは、EQLはグループ・キーがNULL値のレコードを無視することはなく、そのレコードがグループ内に存在すると見なします。すべてNULLのグループであっても返されます。
コーパスからのグルーピングの場合は、EQLはグループ・キーがNULL値のレコードを無視し、そのレコードはどのグループにも存在しないものと見なします。 |
フィルタ | 特定の値と比較するときは、NULL値は指定されたフィルタの条件に一致しません。ただし、IS NULLフィルタを除きます。
次の点に注意してください。
たとえば、レコードAのpriceが5で、レコードBにはpriceの値がない場合は、次のようになります。
|
ソート | 指定されたソート順序にかかわらず、EQLは次のものを返します。
|