私は下に持っているWHERE句と私はオラクル - との2つの列を比較すると、<>
がどのように私は列がと等しくない場所を返すことができますEnd_dt2が空白のところ、クエリがデータを返すされていない結果を見ています空白?
以下の値は返されません。
表:
id End_dt End_dt2
1 1/1/15
Where End_dt <> End_dt2
私は下に持っているWHERE句と私はオラクル - との2つの列を比較すると、<>
がどのように私は列がと等しくない場所を返すことができますEnd_dt2が空白のところ、クエリがデータを返すされていない結果を見ています空白?
以下の値は返されません。
表:
id End_dt End_dt2
1 1/1/15
Where End_dt <> End_dt2
ヌル比較は常に問題を与えます。あなたはそれに対処するためにNVLを追加する必要があります:
はもちろんのWHERE End_dt <> NVL(End_dt2, date '9999-12-31')
これ、End_dt2がnullのとき、レコードがクエリに表示されるべきであると考えています。
end_dt2
がnullの場合、比較は未定義ですが一致しません。 Null behaviour is explained in the documentation。あなたは魔法の日付としてNULLを扱うことができますが、あなたはまた、明示的にNULL値を確認することができます。
where end_dt2 is null or end_dt != end_dt2
いずれかの列がNULLにすることができ、あなたは1(両方ではない)を扱いたい場合は「異なる」などのヌルされ、その後、あなたは行うことができます。
where (end_dt is not null and end_dt2 is null)
or (end_dt is null and and_dtl2 is not null)
or end_dt <> end_dt2
をあなたはWHERE End_dt <> NVL(End_dt2、End_dt - 1)試してみてください場合には、誰かがあなたの好みと一致End_dtのための魔法の値を使用して開始し...と、おそらく合体を(使用する)のではなくNvl() –