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>
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" ? |