Re: Comportamiento correcto del "not in" ?

From: ichbinrene(at)gmail(dot)com
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Comportamiento correcto del "not in" ?
Date: 2012-07-18 02:03:55
Message-ID: 25820901.6PTUWX4VYe@linux-id39.site
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Lazáro Rubén García Martínez 2012-07-18 02:24:12 Re: [pgsql-es-ayuda] replicacion postgres
Previous Message ichbinrene 2012-07-18 01:54:56 Re: [ecpug] replicacion postgres