La cláusula `IN` de PostgreSQL se utiliza para filtrar filas en función de si el valor de una columna coincide con algún valor de una lista especificada. Se utiliza habitualmente en las sentencias `SELECT`, `UPDATE` y `DELETE` para agilizar las consultas que implican varios valores.
Utilización
La cláusula `IN` se utiliza cuando necesitas comprobar si un valor existe dentro de un conjunto de valores dados. Simplifica las consultas permitiendo comprobar varios valores a la vez.
SELECT column_name
FROM table_name
WHERE column_name IN(value1, value2,...);Con la tecnología de
En esta sintaxis, la cláusula `IN` se utiliza para determinar si `nombre_columna` coincide con alguno de los valores proporcionados en los paréntesis.
Esta consulta selecciona todas las columnas de la tabla `productos` en las que `category_id` es 1, 2 ó 3.
2. Utilizar IN con cadenas
SELECT employee_id, name
FROM employees
WHERE department IN('Sales','Marketing');Con la tecnología de
Este ejemplo recupera `employee_id` y `name` de la tabla `employees` para los que trabajan en los departamentos de "Ventas" o "Marketing".
3. IN con subconsulta
SELECT order_id, order_date
FROM orders
WHERE customer_id IN(SELECT customer_id FROM customers WHERE country ='USA');Con la tecnología de
Aquí, la cláusula `IN` se utiliza con una subconsulta para encontrar los pedidos en los que el cliente es de EEUU. Ten en cuenta que la subconsulta debe devolver una única columna para poder utilizarla con `IN`.
Consejos y buenas prácticas
Utiliza IN para mayor claridad. Opta por `IN` cuando compruebes varios valores para mejorar la legibilidad respecto a varias condiciones `OR`.
Ten en cuenta el rendimiento. Para listas grandes, considera la posibilidad de utilizar una unión de tablas o una tabla temporal para optimizar el rendimiento de la consulta. Unir tablas en columnas indexadas puede ser más eficaz que utilizar `IN` con una lista grande de valores.
Aprovecha las subconsultas. Utiliza subconsultas dentro de `IN` para manejar condiciones complejas y listas generadas dinámicamente.
Evita las trampas nulas. Recuerda que si algún valor de la lista es `NULL`, el resultado será `false` a menos que se maneje explícitamente. Considera la posibilidad de utilizar `IS NOT NULL` explícitamente para tratar los posibles valores `NULL` de la lista, ya que `IN` se evalúa como `false` si algún valor es `NULL`.
La cláusula `IN` de PostgreSQL se utiliza para filtrar filas en función de si el valor de una columna coincide con algún valor de una lista especificada. Se utiliza habitualmente en las sentencias `SELECT`, `UPDATE` y `DELETE` para agilizar las consultas que implican varios valores.
Utilización
La cláusula `IN` se utiliza cuando necesitas comprobar si un valor existe dentro de un conjunto de valores dados. Simplifica las consultas permitiendo comprobar varios valores a la vez.
En esta sintaxis, la cláusula `IN` se utiliza para determinar si `nombre_columna` coincide con alguno de los valores proporcionados en los paréntesis.
Ejemplos
1. Uso básico de IN
Esta consulta selecciona todas las columnas de la tabla `productos` en las que `category_id` es 1, 2 ó 3.
2. Utilizar IN con cadenas
Este ejemplo recupera `employee_id` y `name` de la tabla `employees` para los que trabajan en los departamentos de "Ventas" o "Marketing".
3. IN con subconsulta
Aquí, la cláusula `IN` se utiliza con una subconsulta para encontrar los pedidos en los que el cliente es de EEUU. Ten en cuenta que la subconsulta debe devolver una única columna para poder utilizarla con `IN`.
Consejos y buenas prácticas