Principales respuestas
query para filtrar

Pregunta
-
Hola, estoy atorado con este tema, necesito una query que me sirva para filtrar un datagrid, por ejemplo pueden ingresar campo nombre y dirección y arrojara un resultado, pero mi duda es que puedo hacer si despues solo quieren filtrar por nombre.
esto de arriba es un ejemplo ya que en total tengo 5 campos por lo que pueden filtrar, como verán se pueden realizar muchas combinaciones y tendría que realizar muchísimas query.
Mi duda es si hay alguna forma de hacer una query que al ver que un campo no tiene valor no lo tome.
No se si me explico bien, Cualquier ayuda sera agradecida.
Respuestas
-
Si lo quieres hacer en una única query, el truco es este:
Select * from laTabla where (campo1=@valor1 or @valor1 is null) and (campo2=@valor2 or @valor2 is null) etc etc
Si en cualquiera de los @valor le pasas null, esa comparación se desprecia. Como es lógico puedes modificar la consulta poniendo ='' si quieres pasarle una cadena vacía en lugar de null.
- Propuesto como respuesta Brayan De La Cruz domingo, 1 de octubre de 2017 0:50
- Marcado como respuesta Juan MondragónModerator lunes, 2 de octubre de 2017 16:05
Todas las respuestas
-
Si lo quieres hacer en una única query, el truco es este:
Select * from laTabla where (campo1=@valor1 or @valor1 is null) and (campo2=@valor2 or @valor2 is null) etc etc
Si en cualquiera de los @valor le pasas null, esa comparación se desprecia. Como es lógico puedes modificar la consulta poniendo ='' si quieres pasarle una cadena vacía en lugar de null.
- Propuesto como respuesta Brayan De La Cruz domingo, 1 de octubre de 2017 0:50
- Marcado como respuesta Juan MondragónModerator lunes, 2 de octubre de 2017 16:05
-
Hola,
añadiendo a la respuesta de Alberto, en efecto deberías asegurarte enviarlo desde tu visual studio como Nothing (null), asegurarte que no vaya como vacío porque cuando tu aplicación consulte al SQL Server hay mucha diferencia entre null y vacío
Saludos
Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.
- Editado Brayan De La Cruz domingo, 1 de octubre de 2017 0:51