6.7 ナル値
ナル値とは,値がないことまたは値が設定されていないことを示す特殊な値です。領域に値がないか,または設定されていない場合は,ナル値が設定されます。ここでは,ナル値の扱いについて説明します。
- 検索結果の列の値の受け取り
-
-
JDBCドライバを使用している場合
ResultSetインタフェースのwasNullメソッドを使用して,取得した列値がナル値かどうかを判定します。
-
ODBCドライバを使用している場合
検索結果の列の値がナル値の場合,SQLBindColまたはSQLGetDataの引数StrLen_or_IndPtrにSQL_NULL_DATAが設定されます。
-
CLI関数を使用している場合
ナル値の識別にはインジケータを使用します。詳細については,マニュアルHADB AP開発ガイドのa_rdb_SQLInd_t(インジケータ)を参照してください。
-
- 比較時の扱い
-
次に示す項目以外に指定した値式,列の値がナル値である行に対して,その述語は不定になります。
-
NULL述語の左側の値式
-
LIKE述語の「ESCAPE エスケープ文字」に指定した値式
なお,スカラ関数DECODEでのナル値の比較時の扱いについては,「8.16.1 DECODE」を参照してください。
-
- ソート時の扱い
-
ソート指定リストのナル値ソート順指定に従ってナル値を並べ替えます。ナル値ソート順指定については,「7.25.1 ソート指定リストの指定形式」を参照してください。
- グループ分け時の扱い
-
グループ分けの条件となる列にナル値がある場合は,ナル値同士を同じ値として扱い,グループ分けします。
- 重複排除時の扱い
-
ナル値同士は,重複するものとして扱われます。
- 集合関数での扱い
-
集合関数では,基本的にナル値を無視します。ただし,COUNT(*)の場合は,ナル値かどうかに関係なく条件を満たすすべての行を計算します。
- ウィンドウ関数での扱い
-
ウィンドウ関数の場合,ウィンドウ指定に指定した値式の結果がナル値となる行があるときは,ナル値同士を同じ値として扱います。
- インデクスでの扱い
-
ナル値がある列にインデクスを定義できます。