SQL WHERE IN – Explicado con ejemplos

¿Está cansado de filtrar datos manualmente en su base de datos y busca una forma más eficiente de filtrar datos con múltiples valores? ¡SQL WHERE IN podría ser la solución que necesita!

Si está trabajando con bases de datos SQL, probablemente se haya topado con el operador WHERE IN. Este operador se usa para especificar varios valores en una cláusula WHERE, lo que le permite filtrar sus datos con mayor precisión.

Con este operador, puede especificar una lista de valores para compararlos con una columna de su tabla. Esta lista puede codificarse o generarse mediante una subconsulta, lo que le brinda mucha flexibilidad en la forma en que filtra sus datos.

SQL WHERE IN – Explicado con ejemplos

Por ejemplo, puede usar el operador IN para encontrar todos los clientes de una lista específica de ciudades o para filtrar los resultados según un conjunto de ID de productos.

Uno de los beneficios de usar el operador WHERE IN es que puede hacer que sus consultas sean más eficientes. Al usar una lista de valores en lugar de múltiples condiciones OR, puede reducir la cantidad de procesamiento que debe realizar la base de datos.

Esto puede ser especialmente importante cuando se trabaja con grandes conjuntos de datos o consultas complejas, donde incluso las pequeñas optimizaciones pueden marcar una gran diferencia en el rendimiento.

Tabla de contenido

¿Qué es la cláusula SQL WHERE IN?

La cláusula SQL WHERE IN se utiliza para filtrar datos en función de una lista de valores. Le permite especificar múltiples valores en una cláusula WHERE usando una abreviatura para múltiples condiciones OR. La sintaxis de la cláusula WHERE IN para SQL Server , PostgreSQL, MYSQL y Oracle es la siguiente:

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1, value2, ...); 

Si consideramos la instrucción SELECT anterior, la cláusula WHERE IN le permite recuperar datos de una tabla donde la columna especificada coincide con cualquiera de los valores de la lista. Es una sintaxis útil para filtrar datos cuando tiene un conjunto específico de valores para buscar.

¿Cómo funciona la cláusula SQL WHERE IN?

La cláusula funciona comparando la columna especificada con cada valor de la lista. Si la columna coincide con alguno de los valores de la lista, la fila se incluye en el conjunto de resultados.

Supongamos que tiene una tabla llamada "clientes" que consta de tres columnas: "customer_id", "customer_name" y "country". Desea recuperar todos los clientes de EE. UU., Canadá y México. La siguiente consulta le mostrará cómo se usa la cláusula WHERE IN: SELECT customer_id, customer_name, country FROM clients WHERE country IN ('USA','Canada','Mexico');

Ejemplos de la cláusula SQL WHERE IN

Si desea filtrar los resultados en función de una lista de valores posibles, puede utilizar la cláusula SQL WHERE IN. Esta cláusula proporciona una forma sencilla de seleccionar filas en las que una determinada columna coincida con uno de un conjunto de valores.

Aquí hay cinco ejemplos de cómo se puede usar la cláusula:

  1. Uso de la cláusula SQL WHERE IN con un solo valor

Supongamos que desea seleccionar todas las filas de una tabla en la que la columna de estado está configurada como "publicado". Puede hacer esto usando la siguiente instrucción SQL:

SELECT * 
FROM my_table 
WHERE status IN ('published');

Esto devolverá todas las filas donde la columna de estado está configurada como "publicada".

  1. Uso de la cláusula SQL WHERE IN con múltiples valores

Ahora supongamos que desea seleccionar todas las filas donde la columna de estado está configurada como "publicado" o "borrador". Puede utilizar la siguiente instrucción SQL:

SELECT * 
FROM my_table 
WHERE status IN ('published', 'draft');

Esto devolverá todas las filas donde la columna de estado está configurada como "publicado" o "borrador". Además, puede agregar tantos valores como desee, separados por comas.

  1. Uso de la cláusula SQL WHERE IN con declaración de eliminación

Supongamos que tiene una tabla llamada "clientes" con los siguientes datos:

SQL WHERE IN – Explicado con ejemplos

Para eliminar filas de esta tabla en función de varios valores en la columna "Ciudad", la cláusula SQL WHERE IN se puede usar con una declaración DELETE, como se muestra en la siguiente consulta:

DELETE FROM customers
WHERE City IN ('New York', 'Chicago', 'Miami');

Esta declaración eliminará todas las filas de la tabla "clientes" donde los nombres de la columna "Ciudad" coincidan con cualquiera de los valores de la lista, es decir, 'Nueva York', 'Chicago', 'Miami'. En el ejemplo anterior, eliminará la primera, tercera y quinta filas de la tabla.

Tenga en cuenta que al usar la cláusula WHERE IN con una declaración DELETE, debe tener mucho cuidado para evitar errores asegurándose de que está eliminando los datos correctos. Es mejor probar su consulta en un pequeño subconjunto de datos antes de ejecutarla en toda su base de datos.

  1. Uso del operador WHERE IN y la cláusula SQL WHERE para filtrar datos en función de valores numéricos

SELECT *
FROM customers
WHERE age IN (25, 30, 35)
AND city = 'London';

Esta consulta devolverá todas las filas de la tabla "clientes" donde la columna de edad contiene los valores numéricos 25, 30 o 35, y la columna de la ciudad contiene el valor "Londres".

Tenga en cuenta que el operador WHERE IN es un operador lógico que solo le permite especificar múltiples valores para una sola columna. La declaración SELECT se usa para recuperar datos de una tabla y la cláusula WHERE se usa para filtrar los datos según condiciones específicas.

En este ejemplo, la consulta devuelve filas de la tabla "clientes" donde la columna de edad coincide con uno de los valores numéricos especificados y la columna de ciudad coincide con el valor "Londres". Los nombres de columna utilizados en esta consulta son "edad" y "ciudad", y la tabla que se consulta es "clientes".

  1. Usando WHERE IN con la sentencia SELECT y el operador IN.

SELECT *
FROM orders
WHERE customer_id IN (
    SELECT customer_id
    FROM customers
    WHERE country = 'USA'
);

En este ejemplo, usamos una subconsulta para recuperar todos los ID de clientes de la tabla "clientes" donde la columna de país contiene el valor "EE. UU.". Luego estamos usando el operador WHERE IN para filtrar la tabla de "pedidos" en función de esas ID de clientes.

Esta consulta devolverá todas las filas de la tabla de pedidos en las que la columna customer_id coincida con uno de los ID de cliente devueltos por la subconsulta.

Recuerde, el operador WHERE IN es un operador de comparación que le permite comparar una columna con una lista de valores. En este caso, estamos comparando la columna customer_id con una lista de ID de clientes devueltos por la subconsulta.

Mediante el uso de este operador y una subconsulta, puede filtrar datos según criterios específicos y recuperar solo los datos que satisfagan sus necesidades.

2 principales beneficios de usar la cláusula SQL WHERE IN?

  1. Rendimiento de consultas mejorado

La cláusula ofrece uno de los mayores beneficios en términos de rendimiento de consultas. Al filtrar datos en función de varios valores, usar la cláusula puede ser mucho más eficaz y rápido que escribir varias cláusulas WHERE con operadores OR. Esto se debe a que el motor de la base de datos puede optimizar el plan de ejecución de consultas para recuperar de manera eficiente los datos necesarios.

Por ejemplo, considere las siguientes consultas SQL con la tabla "clientes", donde intentamos identificar los detalles del cliente en función de sus países.

SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers WHERE country='USA' 
			OR country='Canada' 
			OR country='Mexico' ;

SQL WHERE IN – Explicado con ejemplos

 SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers 
WHERE country IN ('USA', 'Canada', 'Mexico'); 

SQL WHERE IN – Explicado con ejemplos

Como se ve en el ejemplo anterior, el uso de la cláusula puede generar una mejora significativa en el rendimiento de las consultas y ahorrarle más tiempo. Es más fácil seleccionar todos los países a la vez que seleccionar un país tras otro utilizando el operador OR en un conjunto de datos mucho más grande.

  1. Escritura simplificada de consultas

Otro beneficio importante de usar la cláusula SQ L WHERE IN es que puede simplificar el proceso de escribir consultas complejas. Cuando necesita filtrar datos en función de varios valores, el uso de varias cláusulas WHERE con operadores OR puede volverse engorroso y difícil de administrar rápidamente.

El uso de la cláusula le permite especificar todos los valores que desea filtrar en una sola declaración, lo que hace que sus consultas sean más fáciles de leer y mantener. Esto puede ser especialmente útil cuando se trabaja con grandes conjuntos de datos o cuando necesita escribir consultas complejas con múltiples condiciones.

Por ejemplo, considere la siguiente consulta SQL:

SELECT *
FROM products 
WHERE category='Electronics' AND (brand='Apple' OR brand='Samsung' OR brand='Sony') 
SELECT *
FROM products 
WHERE category='Electronics' AND brand IN ('Apple', 'Samsung', 'Sony') 

En ambas consultas del ejemplo anterior, la consulta devuelve todos los productos "electrónicos" de Apple, Samsung y Sony.

Sin embargo, usar la cláusula WHERE IN como se ve en la última consulta puede simplificar el proceso de usar consultas complejas y hacerlas más fáciles de leer y comprender.

Además, también ayuda a evitar errores y hace que consuma menos tiempo.

Nuestra palabra final

¡Felicidades! Ahora sabe cómo usar la cláusula SQL WHERE IN para filtrar datos en función de una lista de valores. Evaluemos lo que hemos aprendido:

Al usar WHERE IN, puede simplificar un rango de consultas SQL y crearlas para recuperar una salida escrita de manera más eficiente.

Recuerde, WHERE IN es la abreviatura de múltiples condiciones OR, por lo que puede reemplazar largas listas de declaraciones OR. Además, la cláusula se puede usar con subconsultas, lo que le permite filtrar datos en función de los resultados de otra consulta.

Al usar WHERE IN, es importante considerar los tipos de datos de los valores que está comparando. Si los tipos de datos no coinciden, es posible que deba utilizar funciones de conversión de tipos para garantizar una comparación precisa.

En general, la cláusula SQL WHERE IN es una sintaxis poderosa pero básica para filtrar datos en consultas SQL. Al dominar esta cláusula, puede mejorar el rendimiento y la legibilidad de su código SQL, lo que facilita el trabajo y el mantenimiento a largo plazo.

Leave a Comment

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Descubra cómo calcular el total de transacciones realizadas en los últimos N días y obtenga información útil utilizando la inteligencia de tiempo en LuckyTemplates.

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

En este tutorial, demuestro cómo mostrar clústeres en sus datos permite extraer información valiosa usando técnicas DAX avanzadas.

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

En este tutorial, aprenderá a calcular la <strong>población actual del personal</strong> para las relaciones múltiples de la tabla de calendario mediante la función COUNTROWS y FILTER en LuckyTemplates.

Hacer una solicitud HTTP en Power Automate

Hacer una solicitud HTTP en Power Automate

Aprenda a crear una solicitud HTTP con Power Automate y cómo implementar soluciones efectivas para la automatización de tareas.

Programe un flujo de escritorio para que se ejecute en Power Automate

Programe un flujo de escritorio para que se ejecute en Power Automate

En este tutorial, aprenda cómo programar un flujo de escritorio en Power Automate para automatizar tareas en la web y su escritorio.

Power Automate Terminar Control de acción en flujos

Power Automate Terminar Control de acción en flujos

Aprenda a usar correctamente el control Terminar acción de Power Automate que termina las acciones en un flujo si no se cumple alguna de las condiciones.

Power Query: combinar archivos de varias carpetas

Power Query: combinar archivos de varias carpetas

Aprenda a combinar archivos de varias carpetas en su red, escritorio, OneDrive o SharePoint utilizando Power Query.

Tipos de flujo de Power Automate y cuándo usarlos

Tipos de flujo de Power Automate y cuándo usarlos

En este blog, analizamos las similitudes y diferencias entre los tipos de flujo de Power Automate y determinamos cuándo usar cada flujo. Encuentra la mejor opción de automatización.

Conectores de Power Automate: número, texto y fecha y hora

Conectores de Power Automate: número, texto y fecha y hora

Familiarízate con algunos conectores Power Automate integrados que transforman cadenas en otro formato: número, texto y fecha y hora.

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Este tutorial detallado sobre el analizador VertiPaq en DAX Studio le enseñará cómo usar la pestaña Relaciones para optimizar su DAX y resolver problemas de integridad referencial.