where con Case

22/01/2004 - 17:18 por Aragorn \(CL\) | Informe spam
Hola a todos, estoy tratando de realizar un where con un case, no sé si se
pueda hacer...


por ejemplo mi variable @a puede tener 1 o 2 . como puedo hacer que cuando
sea 1 me filtre por el campo TitleOfCourtesy y en caso de que la variable
sea 2 me filtre por el campo Region.


Se que este query esta malo, pero es para representar la idea.


declare @a numeric(1,0)

Set @a = 2

Select *
from dbo.Employees
Where (Case @a
When 1 Then TitleOfCourtesy = 'Ms.'
When 2 Then Region= 'WA'
End)


Gracias.

Aragorn.
 

Leer las respuestas

#1 Manuel \(Salamanca\)
22/01/2004 - 17:49 | Informe spam
Hola,
Yo lo haría con un if:

if @= 1
Select *
from dbo.Employees
Where TitleOfCourtesy = 'Ms.'
else if @=2
Select *
from dbo.Employees
Where Region= 'WA'

De todas formas revisa los BOL, creo que el Case no se puede utilizar en el
where. Solamente en la Select.

Espero haberte ayudado.
Saludos.



"Aragorn (CL)" escribió en el mensaje
news:
Hola a todos, estoy tratando de realizar un where con un case, no sé si se
pueda hacer...


por ejemplo mi variable @a puede tener 1 o 2 . como puedo hacer que cuando
sea 1 me filtre por el campo TitleOfCourtesy y en caso de que la variable
sea 2 me filtre por el campo Region.


Se que este query esta malo, pero es para representar la idea.


declare @a numeric(1,0)

Set @a = 2

Select *
from dbo.Employees
Where (Case @a
When 1 Then TitleOfCourtesy = 'Ms.'
When 2 Then Region= 'WA'
End)


Gracias.

Aragorn.


Preguntas similares