28% de descuento del curso en SQL Server

Estrada Web Group Estrada Web Group
Operador ANY en SQL
Estrada Web Group
Estrada Web Group
Estrada Web Group Estrada Web Group
Calificar:
23 mayo SQL

¿Cómo usar el operador ANY de SQL Server?

¿Cómo usar el operador ANY de SQL Server?

Resumen: en este tutorial, aprenderás a usar el operador ANY de SQL Server para comparar un valor con un conjunto de valores de una sola columna devuelto por una subconsulta.

Introducción al operador ANY de SQL Server

El operadore ANY al igual que ALL se usa con una cláusula WHERE o HAVING. El operador ANY se utiliza cuando se quiere seleccionar registros si alguno de los valores de subconsulta cumple la condición previamente establecida estableció.

El operador ANY es un operador lógico que compara un valor escalar con un conjunto de valores de una sola columna devuelto por una subconsulta.

A continuación, se muestra la sintaxis del operador ANY:

scalar_expression comparison_operator ANY (subconsulta)

En esta sintaxis:

  • scalar_expression es cualquier expresión válida.
  • operador_comparación es cualquier operador de comparación.
  • La subconsulta es una declaración SELECT que devuelve un conjunto de resultados de una sola columna con los mismos datos que el tipo de datos de la expresión escalar.

¿Cómo funciona el operador ANY de SQL Server?

Supongamos que la subconsulta devuelve una lista de valores v1, v2, …, vx. El operador ANY devuelve TRUE si cualquier comparación (scalar_expression, vi) devuelve TRUE. De lo contrario, devuelve FALSE.

Por cada fila de la subconsulta se evalúa la comparación con cada uno de los valores devueltos y si la comparación es True para alguno de los valores ANY es verdadero, si la comparación no se cumple con ninguno de los valores de la consulta, ANY da False a no ser que todos los valores devueltos por la subconsulta sean nulos en tal caso ANY dará NULL.

Si la subconsulta no devuelve filas ANY da False incluso si expresion es nula.

Ten en cuenta que el operador SOME es equivalente al operador ANY.

Ejemplo de operador ANY de SQL Server

Consulta la siguiente tabla de productos de la base de datos de ejemplo.
sql server products
El siguiente ejemplo encuentra los productos que se vendieron con más de dos unidades en una orden de venta:
 

SELECT product_name, list_price
FROM production.products
WHERE
product_id = ANY (
        SELECT
            product_id
        FROM
            sales.order_items
        WHERE
            quantity >= 2
    )
ORDER BY
    product_name;

Resultado(primeros 10)

product_name list_price
Electra Amsterdam Fashion 3i Ladies' - 2017/2018 899.99
Electra Amsterdam Fashion 7i Ladies' - 2017 1099.99
Electra Amsterdam Original 3i - 2015/2017 659.99
Electra Amsterdam Original 3i Ladies' - 2017 659.99
Electra Amsterdam Royal 8i Ladies - 2018 1199.99
Electra Cruiser 1 - 2016/2017/2018 269.99
Electra Cruiser 1 (24-Inch) - 2016 269.99
Electra Cruiser 1 (24-Inch) - 2016 269.99
Electra Cruiser 1 Ladies' - 2018 269.99
Electra Cruiser 7D (24-Inch) Ladies' - 2016/2018 319.99

Consideraciones de performance con el operador ANY

Si bien utilizar este operador es una forma fácil y clara de escribir una consulta, se tiene que considerar que el cálculo y obtención del subquery se hace cada vez que se evalúa el query principal, es decir, una vez por cada registro.

Entonces debes considerar que puedes afectar el performance dependiendo del tamaño de las tablas involucradas, puedes sobrecargar y afectar el performance del servidor.

En este tutorial, aprendiste a usar el operador ANY de SQL Server para comparar un valor con un conjunto de valores de una sola columna.

 

Compartir:

Cargando...
Descarga el código fuente

Obten el código del sistema de gestión de proyectos.

Shape