iakioの日記 RSSフィード

2008-12-11

IS NOT DISTINCT FROM

| 20:58 | IS NOT DISTINCT FROM - iakioの日記 を含むブックマーク はてなブックマーク - IS NOT DISTINCT FROM - iakioの日記

PostgreSQL NULL同士をイコールとして比較したい場合 - 130単位

お、IS NOT DISTINCT FROMなんて知らなかった。

=> \pset null <NULL>
Null display is "<NULL>".
=> select 1 = null;
 ?column?
----------
 <NULL>
(1 row)

=> select 1 IS NOT DISTINCT FROM null;
 ?column?
----------
 f
(1 row)

=> select 1 IS NOT DISTINCT FROM 1;
 ?column?
----------
 t
(1 row)

=> select 1 IS NOT DISTINCT FROM 2;
 ?column?
----------
 f
(1 row)

なるほど。

留意点としてあるのが、空白とNULLを比較した場合には、値が同じ(真)とは評価されないということ。これに対応するには、もう少し工夫が必要といえます。

PostgreSQL NULL同士をイコールとして比較したい場合 - 130単位

coalesce()を使ってNULLを空白に変換してから比較してみてはどうでしょうか。比較対象が文字列型であれば、

coalesce(a.pref, '') = coalesce(b.pref, '')

のようになると思います。

bdrjdaaruphbdrjdaaruph2011/04/23 07:46E1oYuX <a href="http://bhzbkjtrmhta.com/">bhzbkjtrmhta</a>

tmdeovptmdeovp2011/04/24 17:38oY2JZP , [url=http://vqhjzqfwaerj.com/]vqhjzqfwaerj[/url], [link=http://ajqfgstlblea.com/]ajqfgstlblea[/link], http://vgyniyubckjq.com/

トラックバック - http://postgresql.g.hatena.ne.jp/iakio/20081211