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 <[email protected]> - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
