SQL - Where campo=todo

 
Vista:
Imágen de perfil de fucken
Val: 5
Ha disminuido su posición en 13 puestos en SQL (en relación al último mes)
Gráfica de SQL

Where campo=todo

Publicado por fucken (3 intervenciones) el 07/09/2017 21:56:12
buen dia , tengo esta proc almacenado quisiera saber si se puede hacer esto

1
2
3
4
5
6
7
ALTER PROCEDURE  QUERY1
	@ZONA nvarchar(20) ,@SEDE nvarchar(20)
AS
Select *  from data  where [zona]=@ZONA and [sede]=@sede
GO
como podria hacer en este escenario
cuando @ZONA='TODOS' o  @SEDE='TODOS'
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: 29
Ha disminuido su posición en 4 puestos en SQL (en relación al último mes)
Gráfica de SQL

Where campo=todo

Publicado por Yamil Bracho (16 intervenciones) el 07/09/2017 22:06:05
Puede ser algo como:

1
2
3
4
5
6
7
8
9
10
11
12
ALTER PROCEDURE QUERY1
@ZONA nvarchar(20) ,@SEDE nvarchar(20)
AS
IF (@ZONA != 'TODOS' AND @SEDE != 'TODOS')
  Select * from data where [zona]=@ZONA and [sede]=@sede
ELSE
 BEGIN
   IF (@ZONA = 'TODOS')
     Select * from data where [sede]=@sede
   ELSE
     Select * from data where [zona]=@ZONA
END
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
Imágen de perfil de fucken
Val: 5
Ha disminuido su posición en 13 puestos en SQL (en relación al último mes)
Gráfica de SQL

Where campo=todo

Publicado por fucken (3 intervenciones) el 07/09/2017 22:16:58
No hay forma de anidarlo en un solo select?

osea algo similar a esto, ¿?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ALTER PROCEDURE QUERY1
@ZONA nvarchar(20) ,@SEDE nvarchar(20)
AS
Select * from data
 
IF (@ZONA != 'TODOS' AND @SEDE != 'TODOS')
 where [zona]=@ZONA and [sede]=@sede
ELSE
 
IF (@ZONA = 'TODOS')
 where [sede]=@sede
ELSE
where [zona]=@ZONA
END
GO
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: 29
Ha disminuido su posición en 4 puestos en SQL (en relación al último mes)
Gráfica de SQL

Where campo=todo

Publicado por Yamil Bracho (16 intervenciones) el 07/09/2017 22:20:20
Si, puedes armar un string que te contega la senetcnia SQL y luego ejecutarla con EXECUTE
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
Imágen de perfil de fucken
Val: 5
Ha disminuido su posición en 13 puestos en SQL (en relación al último mes)
Gráfica de SQL

Where campo=todo

Publicado por fucken (3 intervenciones) el 07/09/2017 22:29:46
podrias darme un ejemplo de como armar un string? graciad :D
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: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Where campo=todo

Publicado por leonardo_josue (1173 intervenciones) el 08/09/2017 15:36:07
Hola fucken:

No lo mencionas en tus posts, pero puedo suponer que estás trabajando con alguna versión de SQL Server correcto?

Para hacer lo que recomienda Yamil, es recomendable utilizar el SP de sistema SP_EXECUTESQL... checa aquí la documentación oficial:

https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql

Si tienes problemas para entender cómo funciona, pregúntale a SAN GOOGLE por algunos ejemplos. Él generalmente tiene la respuesta.

Saludos
Leo.
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