none
query para filtrar RRS feed

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

    viernes, 29 de septiembre de 2017 17:00

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.

    viernes, 29 de septiembre de 2017 19:03

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.

    viernes, 29 de septiembre de 2017 19:03
  • 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.


    domingo, 1 de octubre de 2017 0:51