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

WHERE con un CASE

Estas en el tema de WHERE con un CASE en el foro de SQL Server en Foros del Web. Estoy intentando hacer esto.. pero no me resulta: Declare @Sede varchar(10) SET @Sede = 'TD' SELECT * FROM listas WHERE Origen IN CASE WHEN @Sede ...
  #1 (permalink)  
Antiguo 03/04/2007, 14:24
Avatar de juantux  
Fecha de Ingreso: marzo-2005
Mensajes: 59
Antigüedad: 19 años
Puntos: 1
WHERE con un CASE

Estoy intentando hacer esto.. pero no me resulta:

Declare @Sede varchar(10)

SET @Sede = 'TD'

SELECT * FROM listas
WHERE Origen IN
CASE
WHEN @Sede = 'TD' THEN ('AF','CP','LL','EC','PE')
WHEN @Sede = 'SS' THEN ('LL','EC','PE')
ELSE (@Sede)
END


Pero no me funciona.. alguna sugerencia??
  #2 (permalink)  
Antiguo 03/04/2007, 14:52
 
Fecha de Ingreso: junio-2006
Mensajes: 109
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: WHERE con un CASE

Código:
SET NOCOUNT ON
Declare @Sede varchar(10)

SET @Sede = 'TD'


Declare @listas table(Origen varchar(2))

INSERT @listas VALUES('AF')
INSERT @listas VALUES('CP')
INSERT @listas VALUES('LL')
INSERT @listas VALUES('EC')
INSERT @listas VALUES('PE')
INSERT @listas VALUES('ZZ')

SELECT * FROM @listas
WHERE 1 =
CASE 
WHEN @Sede = 'TD' THEN CASE WHEN Origen IN ('AF','CP','LL','EC','PE') THEN 1 ELSE 0 END
WHEN @Sede = 'SS' THEN CASE WHEN Origen IN ('LL','EC','PE') THEN 1 ELSE 0 END
ELSE CASE WHEN Origen = @Sede THEN 1 ELSE 0 END
END

SET NOCOUNT OFF
Suerte
  #3 (permalink)  
Antiguo 03/04/2007, 15:02
Avatar de juantux  
Fecha de Ingreso: marzo-2005
Mensajes: 59
Antigüedad: 19 años
Puntos: 1
Re: WHERE con un CASE

Muchas gracias.
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 08:23.