Utilizar CASE en el WHERE

19/01/2006 - 12:01 por carlos | Informe spam
hola,

Teniendo una tabla del tipo
intCodigo (int)
strDescripcion (nvarchar(50))
boolTipo1 bit,
boolTipo2 bit,
boolTipo3 bit

es posible a traves de un SP en el que se le pasa un numero de tipo (@Tipo
int), ejecutar una consulta del tipo?

select intCodi, strDescripcion from tabla1
where
case @Tipo = 1 then boolTipo1 = 1
case @Tipo = 2 then boolTipo2 = 1
case @Tipo = 3 then boolTipo3 = 1
end

Gracias
 

Leer las respuestas

#1 Carlos Sacristán
19/01/2006 - 12:12 | Informe spam
Por poder, se puede hacer, pero la consulta no será muy eficiente:

SELECT intCodi, strDescripcion
FROM tabla1
WHERE 1 = CASE @tipo WHEN 1 THEN boolTipo1
WHEN 2 THEN boolTipo2
WHEN 3 THEN boolTipo3
END

Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"carlos" escribió en el mensaje
news:
hola,

Teniendo una tabla del tipo
intCodigo (int)
strDescripcion (nvarchar(50))
boolTipo1 bit,
boolTipo2 bit,
boolTipo3 bit

es posible a traves de un SP en el que se le pasa un numero de tipo (@Tipo
int), ejecutar una consulta del tipo?

select intCodi, strDescripcion from tabla1
where
case @Tipo = 1 then boolTipo1 = 1
case @Tipo = 2 then boolTipo2 = 1
case @Tipo = 3 then boolTipo3 = 1
end

Gracias



Preguntas similares