Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group