一般的にoracleの場合、whereを使う時に注意しなければならないことが。
例えば、下のようなカラムがあったとします。
hoge_column |
nullの場合のデータを取得したい場合、where hoge_column is nullとすればいいのですが、pl/sqlのカーソルでhoge_columnを取得し、他のカラム(例えば、foo_column、このカラムもnullを含む)と一致したデータを表示したい場合は、
where hoge_column = foo_column |
と、書いてしまうと、何も取得できません。
というか、似たようなソースを書いたら取得できませんでした。
どーやら、hoge_columnにnullを含んでしまっているからで、この場合、
where nvl(hoge_column,'任意の値') = nvl(foo_column,'任意の値') |
とすることで、上の問題を回避できるみたいです。
両方のカラムにnullを含んでしまう場合は、注意したいです。
久しぶりの、oracleネタでした。
通常、nullを含む列での結合は考えません。
返信削除そのようなテーブル設計が望ましくないです。
正規化すべきところかもしれませんね。