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