¿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!

One thought on “Simplificando la vida con IN y T-SQL en SQL Server

  1. Pingback: Simplificando la vida con IN y T-SQL en SQL Server « DbRunas – Noticias y Recursos sobre Bases de Datos

Leave a Reply