Re: Comportamiento correcto del "not in" ?

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Guillermo Villanueva <guillermovil(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Comportamiento correcto del "not in" ?
Date: 2012-07-10 14:07:47
Message-ID: 1341928853-sup-1011@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Excerpts from Guillermo Villanueva's message of lun jul 09 13:06:37 -0400 2012:

> Controlando que dentro y fuera de la subconsulta la clavebeneficiario sea
> no nula, la consulta devuelve lo que esperaba.

> Porque? es el comportamiento normal?

Es extraño la primera vez que lo ves, pero la explicación es que la
lógica booleana de tres valores exige que sea así:

http://www.postgresql.org/docs/9.1/static/functions-subquery.html
Mira 9.20.3 NOT IN. Dice:
Note that if the left-hand expression yields null, or if there
are no equal right-hand values and at least one right-hand row
yields null, the result of the NOT IN construct will be null,
not true.

traduzco:
"si la expresión a la izquierda retorna nulo, o si no hay valores
iguales a la derecha y al menos uno de los valores de la derecha es
nulo, el resultado del NOT IN es nulo, no verdadero"

This is in accordance with SQL's normal rules for
Boolean combinations of null values.

Puede ser más simple conceptualmente reformular la consulta usando NOT
EXISTS.

--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Aquino 2012-07-10 14:23:54 Re: Ayuda con inquietud
Previous Message Miguel Beltran R. 2012-07-10 13:41:16 Re: Comportamiento correcto del "not in" ?