[pgsql-jp: 29048] Re: 比較演算子の動作に関して

Tamotsu Ebina ebina @ pluto.dti.ne.jp
2003年 2月 14日 (金) 12:57:15 JST


インフォテック@海老名です。

PostgreSQLの仕様ではなく
SQLのFAQに属するものです。

数学では A と B と N があって
Aで無ければ(B or N)ですが,

SQLでは A と B と NULLがあって
Aで無ければ B となります。

NULLは比較演算の対象外です。
NULLを見つけるには is NULL または is not NULL
を使用します。

----- Original Message ----- 
From: "Tadashi Kanbayashi" <Tadashi.Kanbayashi @ toppan.co.jp>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Friday, February 14, 2003 11:52 AM
Subject: [pgsql-jp: 29045] 比較演算子の動作に関して


> かんと申します。
> 
> SQLに関して教えていただきたく。
> 
> 比較演算子の != に関してですが、
> 
> これは、 NULL は比較対象外でしょうか。
> 
> 例えば、以下の4レコードが存在しているテーブルに対して、 
> 
> テーブル名 : TEST
> カラム名:NUM
> --------------------
>>> NULL
> NULL
>> 
> select count(NUM) from TEST where NUM != 1;
> 
> というSQL文を実行した場合、
> 
> 1が返ってきます。NULLを含めると、 1でないレコードは3行あるので、
> 3が返ってくると思いましたが、そうなりません。
> 
> これは、そういう仕様でしょうか。
> 
> 教えてください。
> 
> 尚、 PostgreSQL7.2.3を使用しています。
> 
> 
> 
> 
>  
> 
> 




pgsql-jp メーリングリストの案内