ASP.NET - Consulta multiple Sql Server

 
Vista:
sin imagen de perfil
Val: 66
Bronce
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Consulta multiple Sql Server

Publicado por Jorge (27 intervenciones) el 21/01/2021 18:31:08
Buen día, necesito me ayuden con otra duda, necesito hacer una única consulta a sql server que me sirva en varias instancias, donde haciendo un select con where pueda tener todos, varios o ninguno.

Ejemplo:

Select id, color, nombre from tabla1 where color = ALL
Select id, color, nombre from tabla1 where color = @color1 y @color2
Select id, color, nombre from tabla1 where color = @color1

id color nombre
1 rojo pepe
2 verde luis
3 amarillo pedro
4 azul juan
5 negro pablo

las opciones que conozco son anidando And y Or, si alguien conoce una forma más resumida, le agradezco.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 66
Bronce
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Consulta multiple Sql Server

Publicado por Jorge (27 intervenciones) el 21/01/2021 19:05:22
Perdón, este le hago de la siguiente manera:

Select id, color, nombre from tabla1 where color IN (@color1, @color2)

Para color = ALL, hay alguna vía rápida?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 165
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Consulta multiple Sql Server

Publicado por Miguel (72 intervenciones) el 21/01/2021 19:18:29
Lo mejor es que envies una lista de parametros tipo cadena de texto,
o un solo parametro y en el query hayas una separacion digamos por coma.

Asi cuando la lista de parametros sea nula simplemente regresas todos los registros,
y cuando la lista no sea nula simplemente lo agregas en un where




Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 66
Bronce
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Consulta multiple Sql Server

Publicado por Jorge (27 intervenciones) el 21/01/2021 19:26:07
No comprendo la lógica de lo que me planteas, favor podrías graficarme el select, para estar más claro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 165
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Consulta multiple Sql Server

Publicado por miguelZ (72 intervenciones) el 21/01/2021 20:06:01
Por el momento no tengo acceso aun SQL manager pero la idea es esta,
en tu Base de datos crea un stored procedure que acepte un parametro tipo lista para ello debes crear el parametro,

ejemplo:

CREATE TYPE ColorList AS TABLE ( color varchar(20)); --parametro color como lista

en tu stored procedure declara el parametro de entrada.

create procedure [dbo].[getUserByColor]
@coloresConsulta ColorList READONLY

as
IF (@coloresConsulta is Null) --si el parametro es nulo regresa todos los colores
BEGIN
Select id, color, nombre from tabla1
END
ELSE
BEGIN
Select id, color, nombre from tabla1 where color in (SELECT color FROM @coloresConsulta )

END


------en base de datos puedes usar el store de la siguiente manera
DECLARE @coloresTabla ColorList;
INSERT @coloresTabla VALUES ('Rojo'),( 'Azul')

exec getUserByColor @coloresTabla


---** mas o menos esa es la idea. a
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar