Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Filtrar muchos datos

Estas en el tema de Filtrar muchos datos en el foro de SQL Server en Foros del Web. Saludos a todos!! Tengo una duda con la forma de hacer una búsqueda que requiera distintos Filtros. Suponiendo que se tiene. Nombre:------ clave:----- dirección:------ teléfono:----- ...
  #1 (permalink)  
Antiguo 13/08/2014, 08:04
 
Fecha de Ingreso: junio-2014
Ubicación: D.F.
Mensajes: 42
Antigüedad: 10 años, 4 meses
Puntos: 0
Filtrar muchos datos

Saludos a todos!!

Tengo una duda con la forma de hacer una búsqueda que requiera distintos Filtros.

Suponiendo que se tiene.

Nombre:------ clave:----- dirección:------ teléfono:-----

Donde se puede filtrar por alguno de esos campos, por dos, por tres, por todos o por ninguno y mostrar todo el bloque de información.

Bien mi duda es que si es necesario hacer un procedimiento y ahí hacer los filtros o existe alguna manera mas rápida y optimizada, porque si los filtros son mas la cantidad de combinaciones aumentaría mucho.

Espero me puedan ayudar.
  #2 (permalink)  
Antiguo 13/08/2014, 08:26
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Filtrar muchos datos

se podria hacer un query dinamico con los diferentes filtros algo como esto

Código SQL:
Ver original
  1. DECLARE @query nvarchar (MAX)
  2. DECLARE @flag INT
  3. SET @flag=0
  4. SET @query=''
  5.  
  6. IF @telefono<>'' THEN
  7. BEGIN
  8. SET @query=@query + ' telefono=' + @telefono
  9. SET @flag=1
  10. END
  11.  
  12. IF @domicilio<>'' THEN
  13. BEGIN
  14. IF @flag=1
  15.   SET @query=@query + ' and '
  16. SET @query=@query + ' domicilio=' + @domicilio
  17. SET @flag=1
  18. END
  19.  
  20. IF @direccion<>'' THEN
  21. BEGIN
  22. IF @flag=1
  23.   SET @query=@query + ' and '
  24. SET @query=@query + ' direccion=' + @direccion
  25. SET @flag=1
  26. END
  27.  
  28. IF @flag=1
  29.  SET @query='select * from tabla where ' + @query
  30. ELSE
  31.  SET @query='select * from tabla'
  32.  
  33. sp_executesql @query
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 13/08/2014, 09:07
 
Fecha de Ingreso: junio-2014
Ubicación: D.F.
Mensajes: 42
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Filtrar muchos datos

Muchas gracias, era lo que buscaba..
  #4 (permalink)  
Antiguo 13/08/2014, 09:57
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Filtrar muchos datos

Yo lo hacia de otro forma

WHERE Nombre LIKE ISNULL('%' + @Nombre + '%', '%')

Pero nunca medí el tiempo de respuesta, fue en mis años mozos de aprendiz
__________________
MCTS Isaias Islas

Etiquetas: campo, filtrar, muchos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:13.