Menú Cerrar

SQL IN List: lista de entrada de comparación de varios valores

SQL IN Liste Multi Value
Publicado en Educación, Base de datos

Lista SQL IN

La instrucción SQL IN (listas IN) solo puede procesar y validar 1000 valores. Todo en él devuelve un error. A continuación, se muestra un ejemplo para demostrar una lista IN. Aquí solo se muestran empleados y trabajadores, cuyo número de identificación está en la lista IN.

SELECT *
FROM emp 
WHERE 1=1 
    AND empNo IN (1, 2, ...  máx. 1000 palabras);

A menudo, estas declaraciones simplemente pueden evitarse. Pensemos en una gran empresa que quiere gastar todo su personal de producción. Por ejemplo, puede consultar la tabla «Departamentos» y seleccionar allí el departamento de producción. Sin embargo, el caso es problemático con una instrucción UPDATE o DELETE. ¿Qué se debe hacer cuando, por ejemplo, es necesario actualizar muchas filas (pero específicas y no todas)?

Lista de entrada de valor múltiple

Para solucionar el problema, se necesita una lista IN más grande. Entonces, si tiene lugar una comparación entre varios valores, entonces es necesaria otra función. SQL ha implementado una nueva función que puede manejar listas más grandes. Esta característica es más reciente y, por lo tanto, se implementó para una comparación más amplia.

La nueva función funciona, en principio, igual que la función anterior, pero utiliza dos o más parámetros (= lista IN de varios valores). Para poder utilizar la nueva función, se deben ingresar dos o más parámetros (valores de comparación). A continuación se muestra un ejemplo simple, que continúa comparando los números de la lista. Aquí se comparan el primer valor de comparación (1 = 1?) Y luego el segundo valor de comparación (empNo = 1, 2, 3,…?). En este ejemplo, el primer valor de comparación siempre es correcto (verdadero), por lo que solo se considera el segundo valor de comparación. Por lo tanto, se reescribió la lista IN simple funcionalmente equivalente en una lista IN extendida.

SELECT * 
FROM emp 
WHERE 1=1  
    AND (1,empNo) IN ((1, 1), (1,2));

Nota: A menudo, se olvidan los corchetes de inicio o final de la lista IN.

Una lista IN simple y una lista IN para comparar múltiples valores se pueden implementar fácilmente con una macro usando Notepad ++. Aquí, los datos correspondientes se convierten rápidamente de una base de datos o Excel a una lista. Esta lista IN se puede copiar en su secuencia de comandos SQL.