VARCHAR2には文字、NUMBERには数字というように、定義されたデータ型によって格納されるデータは決まります。
しかし、NULL値という特殊な値が格納される事があるので注意が必要です。
NULL値というのは、値(文字や数字)が何も入っていないという状態の値です。
ここで難しいのが、空文字(文字数0)を入力した場合の扱われ方です。
空文字 = NULL それとも 空文字 ≠ NULL
この部分に関しては、使用するデータベースによって考え方がまちまちなので注意が必要です。
同じOracleでもバージョンによって違いがあるので事前にどのような結果になるか確認しておく必要があります。
NULLを入力する
NULL 予約語なのでそのままNULLと書いて使えます。
項目=NULL
NULLを条件にデータを抽出する
NULLのデータ又は、NULL以外のデータを抽出するには、IS NULL 又は IS NOT NULL を使います。
項目 IS NULL
や
項目 IS NOT NULL
というような記述になります。
「項目 = NULL」 や 「項目 <> NULL」 は文法エラーになります。
NULLを変換する
NULLを他の値に変換するには、NVLを使います。
NVLでNULLを空文字に置き換えることにより、空文字とNULLを意識せずに扱えるようにないます。
SELECT NVL(項目 , '' ) FROM テーブル WHERE 項目 = '' ;