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

Tadashi Kanbayashi Tadashi.Kanbayashi @ toppan.co.jp
2003年 2月 14日 (金) 12:58:29 JST


かんです。

キタムラ様
海老名様

ありがとうございました。

NULLを含むカラムAに対して、’B’でないものを選択するためには、 
A != ’B’ or A is NULL というようにしないとだめなの
ですね。


基本的なところが抜けてました・・・

-----Original Message-----
差出人 : Tamotsu Ebina <ebina @ pluto.dti.ne.jp>
宛先 : pgsql-jp @ ml.postgresql.jp <pgsql-jp @ ml.postgresql.jp>
日時 : 2003年2月14日 12:48
件名 : [pgsql-jp: 29048] Re: 比較演算子の動作に関して


>インフォテック@海老名です。
>
>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を使用しています。
>>
>>


---
T.Kan





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