Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/07/2011, 04:37
Pelirr
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 5 meses
Puntos: 1
uso is null, not null, exists, not exists

Hola, tengo un problema al intentar recuperar unos registros de una tabla donde uno de los campos puede ser nulo.

Yo tengo la tabla tabla "tabla1", que está asociada a otras tablas, por ejemplo, su campo "statusCode" proviene de la tabla "status" del campo "statusCode". Yo quiero obtener todos los registros de la tabla "tabla1" donde el valor del campo statusCode sea igual a SCH o tenga valor nulo. Supongamos que los estados posibles son e1,e2,SCH. Si yo hago la consulta:

Cita:
select a tabla1 a where a.status.statusCode not int ('%e1%', '%e2%');
sólamente me devuelve los registros donde el valor del estado es SCH, pero si yo tengo algún registro dónde el estado está vacío (es decir a null), no me lo devuelve. Y ahí está el problema, no encuentro la manera de que me devuelva tb los registros donde el estado sea nulo.

He visto por internet la manera de utilizar las cláusulas exists y not exists, que se diferencian de in y not in en que traen esos valores nulos, pero no encuentro la manera de utilizarlas por que por lo que veo se utilizan para subconsultas dentro de una consulta principal.

Debería ser algo parecido a:

Cita:
select a tabla1 a where a.status.statusCode like '%SCH%' and not exists(select b from status b where a.status.statusCode = b.statusCode)
pero no me termina de cuadrar, ¿puede alguien echarme un cable?

Muchas gracias