RE: Select con valores nulos

From: Fernando Siguenza <fsigu(at)hotmail(dot)com>
To: <manuel(at)radiohead(dot)cl>
Cc: Foro Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Select con valores nulos
Date: 2010-07-26 15:51:51
Message-ID: SNT108-W21C2211107F39384B64D83A1A60@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Gracias amigo si justamente hago la comparacion de los valores en la aplicacion, pero programo en punto net, y ahi tengo que ir agregando parametros por cada campo, lo cual se lo puede hacer con varios if, y se escribe demasiado codigo para ya enviar el select que necesito, y como en mysql lo resolvi de una forma rapida conel select que les indique anteriormente, pense que con postgre lo podia hacer de igual forma.

Saludos

CC: pgsql-es-ayuda(at)postgresql(dot)org
From: manuel(at)radiohead(dot)cl
To: fsigu(at)hotmail(dot)com
Subject: Re: [pgsql-es-ayuda] Select con valores nulos
Date: Mon, 26 Jul 2010 11:42:31 -0400

Si tienes un aplicación que busca por N campos:
SELECT * FROM table WHERE campo1 = '...' AND campo2 = '....' AND campo3 = '...';
Creo que lo mas decente esque la aplicación detecte cuando el valor esté en blanco y no lo incluya dentro del WHERE. De este modo si el usuario ingresa texto en el campo1 debiese ser:
SELECT * FROM table WHERE campo1 = '...';
Si busca por el campo1 y campo2:
SELECT * FROM table WHERE campo1 = '...' AND campo2 = '...';
De igual forma y feamente lo podrías conseguir así:
SELECT * FROM table WHERE (TU_VARIABLE != '' AND campo1 = TU_VARIABLE) AND (TU_VARIABLE != '' AND campo2 = TU_VARIABLE) AND (TU_VARIABLE != '' AND campo2 = TU_VARIABLE);
Suponiendo que lo que haces es tirar un VACIO y no la palabra NULL. Recuerda que VACIO y NULO son dos cosas distintas.
El 26-07-2010, a las 11: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.

Gracias

CC: pgsql-es-ayuda(at)postgresql(dot)org
From: manuel(at)radiohead(dot)cl
To: fsigu(at)hotmail(dot)com
Subject: Re: [pgsql-es-ayuda] Select con valores nulos
Date: Mon, 26 Jul 2010 11:21:36 -0400

Es claro que si ingresas "OR" basta con que encuentre una de las 2 condiciones para que te retorne filas.
Si quieres descartas TODOS los valores NULOS:

Si no es eso, entonces no entiendo bien.

El 26-07-2010, a las 11:02, Fernando Siguenza escribió:Amigos como estan, queria molestarles con un select que quiero armar, tengo que hacer una busqueda en la tabla facturas, por varios campos entre los cuales tengo el codigo del cliente y la fecha, entonces lo que deseo es como puedo armar una consulta de tal forma que detecte que si uno de los dos campos esta en valor null no lo inclua en la consulta.

Algo asi

Esta seria la consulta en el caso que se quiera buscar por los dos campos
Select * from facturas where codigocliente like '010%' or fecha='01/01/2010';

Pero si no ingreso nada en codigo cliente y este esta en null,como podria hacer para comparar a ver si es null y que ya no me busque por ese campo

Select * from facturas where fecha='01/01/2010';

Una consulta parecida la tenia en mysql y es algo asi, pero no se como implementarlo en postgre

select SocioId,Nombre,Apellido,Ruc,FecNacimiento,EstadoCivil,Direccion,
Telefono,Celular,ViviendaPropia
from socios
where ((@vNombre IS NULL) OR (Nombre like CONCAT('%', @vNombre, '%')))
and ((@vApellido IS NULL) OR (Apellido like CONCAT('%', @vApellido, '%')))
and ((@vTelefono IS NULL) OR (Telefono like CONCAT('%', @vTelefono, '%')))

Esta ultima consulta hace lo que deseo en mysql como puedo hacer algo parecido en postgre.

Muchas gracias por la ayuda.

Saludos

Connect to the next generation of MSN Messenger Get it now!
------------------------Manuel Diego Paillafil Gamboamanuel(at)radiohead(dot)cl

Connect to the next generation of MSN Messenger Get it now!
------------------------Manuel Diego Paillafil Gamboamanuel(at)radiohead(dot)clMóvil: 06 - 801 60 24

_________________________________________________________________
Explore the seven wonders of the world
http://search.msn.com/results.aspx?q=7+wonders+world&mkt=en-US&form=QBRE

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Oswaldo Hernández 2010-07-26 16:10:46 Re: Select con valores nulos
Previous Message Manuel Diego 2010-07-26 15:42:31 Re: Select con valores nulos