martes, 4 de octubre de 2011

No funciona not in en TSQL

El dia de ayer un compañero estaba realizando una consulta de la siguiente forma:

SELECT * from tabla_claves where clave not in
(SELECT clave from claves_alta)
y la consulta no le devolvia resultados a pesar de que habia dos registros en la tabla_claves que no existian en la tabla claves_alta, y nuestra sorpresa fue darnos cuenta de que si cambiabamos el select seguido del in por las claves escritas directamente, funcionaba.

¿Por que dejo de funcionar el siempre popular "not in"?, pues nos dimos cuenta que la tabla claves_alta tenia un registro con el campo clave en valor NULL, esto provocaba que no funcionara la consulta correctamente, para que no tengan problemas con esta clausula, verifiquen que el conjunto de datos que van a comparar dentro de la clausula "not in", no contenga registros NULL

No hay comentarios: