DB2で特定のカラムから特定の文字以外を取得する場合、
NULLのレコードが取得されずにハマったので備忘録
下記の様なテーブルがあった場合
col1
-------
A
null
B
C
A以外を取得する場合
SELECT col1 FROM table1 WHERE col1 <> 'A'
上記のsqlを実行した結果、col1がBとCのレコードが取得されたが、nullのレコードは取得されない。
nullのレコードも必要な場合は条件に IS NULL も付ける必要がある。
SELECT col1 FROM table1 WHERE col1 <> 'A' OR col1 IS NULL
in句を使用する場合も同様に IS NULL を付ける必要がある。
SELECT col1 FROM table1 WHERE col1 NOT IN ('A','B') OR col1 IS NULL