よしたく blog

ほぼ週刊で記事を書いています

date型の列にnullが入っているときの検索方法

自分は頭が硬いなぁと思ったのですが...

SQLでdate型の列にnullが入っているものがあり、nullも含めて全件出したいなぁと思っていたんですが、

AND date BETWEEN '1900/01/01' AND '2999/12/31'

これでは、nullが検索結果に出てきません。

そのnullも含めて出したかったときは

AND NVL(?,1900/01/01') BETWEEN NVL(?,'1900/01/01') AND NVL(?,'2999/12/31')

と、nullの値を別のものに置き換えれば検索できました。

簡単なもので躓いたので、ブログに書いて供養

「検索結果をどう出すか」って言うことにおいては、 「検索結果に出てこないもの」を「どうやって検索条件内に入れるか」っていう考え方が一つ増えたいい機会でした。