Re: Select con valores nulos

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Select con valores nulos
Date: 2010-07-26 16:10:46
Message-ID: 4C4DB386.8020600@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 26/07/2010 17:29, Fernando Siguenza escribió:
> Gracias amigos por las respuestas creo que no me explique bien, lo que
> deseo es hacer una busqueda de facturas por varios campos de la tabla,
> pero no siempre se ingresan todos los campos por los que deseo buscar,
> por ejemplo
>
> SELECT * FROM facturas WHERE codigocliente LIKE '010%' AND
> fecha='01/01/2010';
>
> Esta consulta me funciona muy bien para cuando el usuario quiere buscar
> por codigo y por fecha, pero que pasa si solo quiere buscar por codigo
> de cliente, en la variable de fecha va a estar con valor null, como
> haria en este caso, ya que son algunos campos y para el ejemplo solohe
> puesto2.
>

Solucion 1.- Montas el sql dinamicamente en la aplicación agregando
clausulas 'and' para los parametros no null.

Solucion 2.- Comprobar en cada clausula del where si el parametro es
nulo. Observa que aqui cada parametro hay que incluirlo dos veces en el SQL:

select * from facturas
where
case when PARAM_1 is null then true else codigocliente = PARAM_1 end
and
case when PARAM_2 is null then true else fecha = PARAM_2 end
and
...

Saludos,
--
Oswaldo Hernández

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo Villanueva 2010-07-26 16:14:49 Re: copy from
Previous Message Fernando Siguenza 2010-07-26 15:51:51 RE: Select con valores nulos