¿Te complicas mucho la existencia usando operadores lógicos en las consultas a la base de datos? Lo mas probable, es que si lo hagas (Bueno, sino te complica, esto igual te servirá).
El operador OR siempre devolverá un valor verdadero, siempre y cuando uno de sus argumentos sea verdadero. Se utiliza como predicado del WHERE. Por ejemplo:
SELECT * FROM MiTabla WHERE Campo1 = 1 OR Campo1 = 2
Simple, ¿no? Ahora que pasaría si tuviera que agregar más OR a mi consulta:
SELECT * FROM MiTabla WHERE Campo1 = 1 OR Campo1 = 2 OR Campo1 = 3 OR Campo1 = 5 OR Campo1 = 10 OR Campo1 = 15 OR Campo1 = 100
Se complica un poco el panorama y queda complicado para la lectura. Para solucionar esta problemática, haremos uso de IN, que, justamente, sirve para simplificar el uso de OR. El modo de uso es sencillo:
bla bla blaa WHERE Campo1 IN(valor1, valor2, valor3, valorn)
Este ejemplo fue realizado con la base de datos AdventureWorks:
-- Consulta usando OR
SELECT
*
FROM
[Sales].[SalesPerson]
WHERE
[Bonus] = 4100 OR [Bonus] = 2000 OR [Bonus] = 5000 OR [Bonus] = 6700 OR [Bonus] = 3550
ORDER BY
[Bonus] DESC
-- Consulta usando IN
SELECT
*
FROM
[Sales].[SalesPerson]
WHERE
[Bonus] IN(4100,2000,5000,6700,3550)
ORDER BY
[Bonus] DESC
Saludos!