Gracias por la aclaración.
Entendido.

*No había pensado que el NOT IN () se traducía de esa manera. *

Guillermo Villanueva




El 17 de julio de 2012 23:03, <ichbinr...@gmail.com> escribió:

> On Tuesday 17 July 2012 13:35:12 Alvaro Herrera wrote:
> > Excerpts from Guillermo Villanueva's message of lun jul 16 21:05:52 -0400
> 2012:
> > > Un poco tarde mi agradecimiento por las respuestas.
> > > Alvaro, como siempre, muy claro y conciso.
> > > Es como vos decís es extraño y a mi entender no muy lógico a primera
> > > vista, no sabía de ese estándar, viéndolo en ejemplos concretos
> > > podríamos decir que:
> > > 4 not in (1, 2, 5, null)
> > > no es verdadero!
> > >
> > > Es así?
> >
> > Claro, no es verdadero.  No sé qué elemento es el último, por lo tanto
> > no puedo decir que 4 está en ese conjunto, y tampoco puedo decir que no
> > está.  La respuesta correcta entonces es NULL.
>
> A mi también me costó trabajo al principio entender este asunto,el cual se
> explica porque 4 NOT IN (1,2,5,NULL) se traduce internamente como:
>
>  NOT (4=1 OR 4=2 OR 4=5 OR 4=NULL)
>
> Y puesto que el resultado de 4=NULL es NULL , todas las demás comparaciones
> se nulifican también al compararse con este resultado ya que toda
> operación de
> comparación o aritmética que involucre NULL regresará NULL.
> Saludos.
> @iCodeiExist
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

Responder a