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
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 |