Consulta con OR?

28/05/2007 - 17:50 por Guillermo Peralta | Informe spam
Hola a todos;

Cómo podria efectuar la siguiente consulta?


IdEmpleado
Nombre
IdCategoria

1 || Guillermo || 4
2 || Juan || 5
3 || Pedro || 5


Me gustaria efectuar una consulta del siguiente modo:

Si ingreso un valor para IdCategoria por ejemplo el 4, me deberia devolver a
1 || Guillermo
Si ingreso un valor para IdCategoria por ejemplo el 5, me deberia devolver a
2 || Juan y 3 || Pedro

En cambio sin ingreso un valor nulo, (podria ser cero) me deberia devolver
los tres registros, es decir sin efectuar ninguna condicion

Habia pensado algo asi con el uso del OR
declare @IdCategoria int

set @IdCategoria = 4 -- en este caso me deberia devolver a Guillermo

Select * from Empleados

Where (IdCategoria = @IdCategoria) or ( IdCategoria = IdCategoria )

pero no funciona así (creo)



Alguna idea?

Gracias






Saludos
Guillermo
AG - CBA - ARG
 

Leer las respuestas

#1 Jesús López
28/05/2007 - 18:28 | Informe spam
Sería así:

SELECT * FROM Empleados WHERE IdCategoria = @IdCategoria OR @IdCategoria IS
NULL

Sin embargo no te lo recomiendo, SQL Server es ineficiente para este tipo de
consultas.

Yo usaría esta otra consulta:

IF @IdCategoria IS NULL
SELECT * FROM Empleados
ELSE
SELECT * FROM Empleados WHERE IdCategoria = @IdCategoria


Saludos:


Jesús López
www.solidq.com



"Guillermo Peralta" escribió en el
mensaje news:e64Jd$
Hola a todos;

Cómo podria efectuar la siguiente consulta?


IdEmpleado
Nombre
IdCategoria

1 || Guillermo || 4
2 || Juan || 5
3 || Pedro || 5


Me gustaria efectuar una consulta del siguiente modo:

Si ingreso un valor para IdCategoria por ejemplo el 4, me deberia devolver
a 1 || Guillermo
Si ingreso un valor para IdCategoria por ejemplo el 5, me deberia devolver
a 2 || Juan y 3 || Pedro

En cambio sin ingreso un valor nulo, (podria ser cero) me deberia devolver
los tres registros, es decir sin efectuar ninguna condicion

Habia pensado algo asi con el uso del OR
declare @IdCategoria int

set @IdCategoria = 4 -- en este caso me deberia devolver a Guillermo

Select * from Empleados

Where (IdCategoria = @IdCategoria) or ( IdCategoria = IdCategoria )

valuaria, pero no funciona así (creo)



Alguna idea?

Gracias






Saludos
Guillermo
AG - CBA - ARG



Preguntas similares