El operador lógico OR de SQL se usa en las consultas para filtrar datos en función de varias condiciones. Suele emplearse en la cláusula WHERE para devolver los resultados que cumplan las condiciones indicadas. Esta funcionalidad convierte al operador OR en una herramienta clave para recuperar datos con flexibilidad.
En este tutorial, te mostraré, con ejemplos prácticos, los distintos casos de uso del operador OR en consultas SQL. Si estás empezando con SQL o aspiras a ser analista de datos, te recomiendo el curso Introduction to SQL de DataCamp para aprender los fundamentos. La chuleta de SQL básico también te ayudará a consultar operadores y funciones comunes para consultar tablas, filtrar y agregar datos.
¿Qué es el operador OR en SQL?
El operador OR de SQL se utiliza normalmente con la cláusula WHERE para filtrar datos. Al usarlo en una consulta, OR incluirá las filas en las que al menos una de las condiciones especificadas sea verdadera.
La siguiente consulta devolverá todos los registros de la tabla employees que estén en el departamento de RR. HH. o que tengan un salario superior a 60.000 $. Si una fila cumple una o ambas condiciones, se incluirá en los resultados.
-- Selecciona filas donde el departamento sea 'HR' O el salario sea mayor que 60.000
SELECT *
FROM employees
WHERE department = 'HR'
OR salary > 60000;

Salida de ejemplo de una tabla filtrada con el operador OR de SQL. Imagen del autor.
Descubre más sobre el operador OR y otros operadores de filtrado condicional en el curso Intermediate SQL de DataCamp.
Obtén una Certificación Top SQL
Sintaxis del operador OR en SQL
El operador OR es sencillo de usar e incorporar en consultas SQL. A continuación tienes la sintaxis básica cuando se utiliza en una sentencia SELECT.
SELECT column1, column2, ...
FROM table_name
WHERE condition1
OR condition2
OR condition3;
Ten en cuenta que puedes usar más de una condición OR en la cláusula WHERE.
Uso básico en la sentencia SELECT
El operador OR se emplea en SELECT para devolver registros que cumplan cualquiera de las condiciones indicadas. Esto hace que OR sea útil para recuperar registros sin escribir varias consultas complejas.
En el ejemplo siguiente, el operador OR filtra todos los registros de personas empleadas en "New York" o "Los Angeles".
-- Selecciona empleados de New York o Los Angeles
SELECT first_name, last_name, city
FROM employees
WHERE city = 'New York'
OR city = 'Los Angeles';
Combinar OR con AND en SQL
El operador OR se puede combinar con AND para formar condiciones más complejas en una consulta SQL. Al usar ambos, empleamos paréntesis para controlar el orden de las operaciones.
Considera la siguiente consulta: queremos seleccionar a todas las personas del departamento de IT y que vivan en "New York" (como una sola condición), o que ganen más de 70.000 $. Los paréntesis agrupan la condición con AND para evaluarla como una unidad antes de aplicar el operador OR.
-- Selecciona columnas
SELECT first_name, last_name, department, city, salary
FROM employees
-- Agrupar departamento de IT en New York
WHERE (department = 'IT' AND city = 'New York')
-- Empleados con salario superior a 70.000
OR salary > 70000;

Salida de ejemplo al filtrar combinando OR con AND. Imagen del autor.
La consulta anterior evalúa y devuelve los registros de:
-
Quienes trabajan en el departamento de IT y viven en New York.
-
O cualquier persona que gane más de 70.000 $, sin importar departamento o ciudad.
Al combinar OR con AND, agrupa correctamente las condiciones con paréntesis. Un mal agrupamiento puede provocar errores lógicos y resultados no deseados.
Si no se usan paréntesis, la condición AND se evalúa antes que OR. Usarlos correctamente deja claro el agrupamiento y garantiza el orden de evaluación previsto.
Ejemplos del operador OR en acción
El operador OR puede usarse en distintas consultas SQL para recuperar registros o manipular datos de la base de datos. A continuación, algunos ejemplos de uso del operador OR.
Filtrar datos con varias condiciones
El operador OR se utiliza principalmente para filtrar registros en función de dos o más condiciones. Este método es útil cuando quieres ampliar los criterios de búsqueda en la base de datos. El siguiente ejemplo filtrará y devolverá registros de personas empleadas en New York City o que ganan más de 80.000 $.
-- Selecciona columnas
SELECT first_name, last_name, department, city, salary
FROM employees
-- Empleados en New York City
WHERE city = 'New York'
-- Empleados con salario superior a 80.000
OR salary > 80000;
Uso del operador OR en sentencias INSERT
Puedes usar el operador OR con sentencias INSERT para insertar nuevos registros en la tabla si se cumple la condición especificada. En el ejemplo siguiente, la consulta insertará un nuevo registro en la tabla employees si la persona pertenece al departamento de RR. HH. o si gana más de 60.000 $. La consulta siguiente es válida para SQL Server, MySQL y PostgreSQL.
-- Inserta un nuevo registro en la tabla 'employees'
INSERT INTO employees (employee_id, first_name, last_name, department, salary, city)
SELECT 49, 'Anna', 'Johnson', 'HR', 62000, 'New York'
-- Primera condición: el departamento es 'HR'
WHERE 'HR' = 'HR'
-- Segunda condición: el salario es mayor que 60.000 $
OR 62000 > 60000;
En Oracle, la sentencia INSERT es diferente y requiere una cláusula FROM usando la tabla dual, una tabla especial de una fila y una columna incluida en la base de datos. Haz nuestro curso Introduction to SQL Server si vas a trabajar específicamente con SQL Server.
-- Inserta un nuevo registro en la tabla 'employees'
INSERT INTO employees (employee_id, first_name, last_name, department, salary, city)
SELECT 49, 'Anna', 'Johnson', 'HR', 62000, 'New York'
FROM dual
WHERE 'HR' = 'HR' -- Primera condición: el departamento es 'HR'
OR 62000 > 60000; -- Segunda condición: el salario es mayor que 60.000 $
Uso del operador OR en la sentencia UPDATE
La sentencia UPDATE se usa en SQL para modificar registros existentes en una tabla. Puedes utilizar el operador OR en UPDATE para modificar los registros según varias condiciones y actualizar solo los que las cumplan.
En el ejemplo siguiente, empleamos OR para actualizar el salario si la persona está en el departamento de Finanzas o vive en Chicago.
-- Actualiza el salario de los empleados
UPDATE employees
-- Incrementa el salario un 10%
SET salary = salary * 1.1
-- Primera condición: el departamento es 'Finance'
WHERE department = 'Finance'
-- Segunda condición: empleados en la ciudad de Chicago
OR city = 'Chicago';
Uso del operador OR en la sentencia DELETE
De forma similar, la sentencia DELETE en SQL se utiliza para eliminar registros existentes de una tabla. Puedes usar el operador OR con DELETE para eliminar registros en función de condiciones específicas.
La consulta siguiente eliminará registros de la tabla employees cuando la persona sea de Chicago o gane 60.000 $.
-- Elimina registros de la tabla 'employees'
DELETE FROM employees
-- Primera condición: empleados de Chicago
WHERE city = 'Chicago'
-- Segunda condición: empleados que ganan 60.000
OR salary = 60000;
Consideraciones de rendimiento en consultas con OR
Al trabajar con conjuntos de datos muy grandes, puedes notar problemas de rendimiento con el operador OR. Esto puede ralentizar las operaciones al filtrar registros. Estos son los problemas más comunes y cómo mitigarlos.
Lecturas completas de tabla
Al usar OR en grandes volúmenes de datos, pueden producirse lecturas completas de tabla, especialmente si no hay un indexado adecuado. Esto ralentiza la ejecución porque la consulta evalúa fila a fila. Para evitarlo, indexa las columnas necesarias para que el motor localice más rápido los valores y acelere el escaneo.
Evaluación de condiciones complejas
Cuando OR evalúa múltiples condiciones, la consulta puede volverse notablemente más lenta, sobre todo si la indexación no es la adecuada. Si las condiciones con OR son complejas, reestructurar la consulta en partes más pequeñas, por ejemplo con subconsultas, puede mejorar el rendimiento.
Condiciones redundantes
Incluir condiciones OR innecesarias puede ralentizar la consulta, ya que el motor debe evaluarlas todas. Usa solo las condiciones imprescindibles y con mayor probabilidad de cumplirse para simplificar y acelerar la ejecución.
Alternativas al operador OR
Si te encuentras con problemas de rendimiento usando OR, valora estas alternativas para filtrar datos con múltiples condiciones.
Usar el operador UNION
El operador UNION se utiliza para combinar resultados de dos o más sentencias SELECT, especialmente cuando requieren indexaciones distintas. En la consulta siguiente, UNION combina operaciones para filtrar y devolver los registros de employees del department de IT en la city de New York. Si aún no dominas UNION, lee nuestro tutorial UNION vs UNION ALL en SQL.
-- Usa UNION en lugar de OR para un mejor rendimiento
SELECT first_name, last_name, department, city
FROM employees
-- Primera condición
WHERE department = 'IT'
UNION
SELECT first_name, last_name, department, city
FROM employees
-- Segunda condición
WHERE city = 'New York';
Usar sentencias CASE
La sentencia CASE es una alternativa útil a OR cuando quieres incluir lógica condicional en la consulta. CASE puede mejorar el rendimiento en función de su ejecución óptima. La consulta siguiente usa CASE para categorizar departamentos según varias condiciones.
-- Selecciona nombre, apellidos y una categoría derivada según condiciones
SELECT first_name, last_name,
-- Usa CASE para determinar la categoría según el departamento o la ciudad
CASE
-- Si el departamento es 'IT', categoriza como 'Tech'. Si la ciudad es 'New York', como 'NYC'
WHEN department = 'IT' THEN 'Tech'
WHEN city = 'New York' THEN 'NYC' --
ELSE 'Other'
END AS category
FROM employees;
Consulta nuestro itinerario de habilidades SQL Fundamentals para aprender más sobre el operador UNION y la sentencia CASE para manipulación de datos.
Certifícate en SQL
Conclusión
El operador OR es una pieza versátil de SQL para construir consultas flexibles y complejas. Permite filtrar registros de una tabla en función de múltiples condiciones. Como hemos visto, junto con sentencias como INSERT, UPDATE y DELETE, también sirve para modificar registros en tablas. Como analista de datos, es importante comprender los posibles problemas de rendimiento con OR y las alternativas, como el operador UNION y las sentencias CASE WHEN.
Te animo a practicar el uso de OR para filtrar registros con distintos conjuntos de datos y así familiarizarte con su funcionamiento. Para llevar tus habilidades de SQL al siguiente nivel, echa un vistazo a nuestro itinerario profesional Associate Data Analyst in SQL y conviértete en un analista solvente. El curso Reporting in SQL también te ayudará a aprender a analizar y presentar datos con paneles. Por último, te recomiendo obtener la SQL Associate Certification de DataCamp para acreditar tus competencias en análisis de datos con SQL.
Preguntas frecuentes sobre SQL
¿Cuál es la diferencia entre los operadores OR y AND en SQL?
El operador OR devuelve resultados si cualquiera de las condiciones especificadas es verdadera, mientras que AND devuelve resultados solo si todas las condiciones son verdaderas.
¿Se puede usar el operador OR junto con AND en una sola consulta?
Puedes usar los operadores OR y AND juntos para filtrar registros con varias condiciones. Eso sí, usa paréntesis para agrupar las condiciones y definir el orden de ejecución.
¿Hay limitaciones en el número de condiciones que se pueden filtrar con OR en SQL?
No hay un límite en el número de condiciones que puedes filtrar con OR, aunque un exceso de condiciones puede afectar al rendimiento de la consulta.
¿Puede usarse el operador OR para modificar datos en tablas?
Puedes usar el operador OR con las sentencias INSERT, UPDATE y DELETE para modificar los registros especificados en la tabla.
¿Cuáles son las alternativas en SQL al operador OR?
El operador UNION y las sentencias CASE WHEN son alternativas a OR para filtrar registros con múltiples condiciones.

