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