Operador SQL ANY y ALL

 Operador ANY y ALL en SQL

En esta sección seguiremos estudiando sobre los operadores lógicos, específicamente veremos los operadores lógicos ANY y ALL.

 Los operadores ANY SQL y ALL SQL nos permiten realizar comparación entre valores de una columna y un rango de otro valores.


ANY SQL: devuelve como resultado un valor booleano(Verdadero),siempre y cuando alguno de los valores la subconsulta cumpla la condición, es decir la condición será verdadera si la operación es verdadera para cualquiera de los valores establecidos en el rango.

Sintaxis
SELECT Column_Name(s) FROM Nombre_Tabla 
WHERE ColumnaName ANY
(SELECT Column_Name FROM Nombre_Table WHERE Condicion )


ALL SQL: Nos devuelve como resultado un valor booleano(Verdadero), si todo los valores de la  subconsulta cumplen la condición, en pocas palabras la condición será verdadera si la operación  es verdadera para todo los  valores en rangos. ALL Podemos utilizarlo en declaraciones WHERE Y HAVING.

Sintaxis

SELECT ALL Column_name FROM Nombre_tabla WHERE Condicion 


Sintaxis Utilizando WHERE Y HAVING

SELECT ColumnName FROM Nombre_tabla WHERE ColumnName1
ALL(SELECT ColumnaName FROM NombreTabla WHERE Condicion)

A continuación vamos a realizar algunos ejemplos con nuestra base de datos de ejemplo de un sistema ya desarrollado. De esta base de datos vamos a tomar 2 tablas la primera contiene los registros de productos y la segunda los detalle de ventas de estos productos.

Tabla Productos

Tabla Detalle de ventas


A continuación vamos a realizar una consulta utilizando el operador ANY. Seleccionaremos los nombres de los productos en la tabla detalle de ventas cuyo cantidad sea igual a 5

SELECT NombreProducto FROM SivProductos
WHERE ProductoID = ANY
(SELECT objProductoID FROM SfaVentasDetalles
WHERE Cantidadvendida = 5
)

Ejecutamos la consulta en SQL Server Management Studio:


Ejecutada la consulta podemos observar que nos ha arrojado la información de los nombres de  productos incluidos en un detalle de la venta, veamos otro ejemplo rápidamente para continuar con el siguiente operador

ahora vamos a seleccionar los nombre de los productos cuyo cantidad sea mayor a 15. esto arroja una respuesta verdadera ya que la tabla detalle de ventas contiene registros mayores a 15.


SELECT NombreProducto FROM SivProductos
WHERE ProductoID = ANY
(SELECT objProductoID FROM SfaVentasDetalles
WHERE Cantidadvendida > 15
)

Ejecutamos la consulta:


El resultado obtenido serán los productos cuya cantidad vendida sea mayor a 15


Ejemplo de consultas utilizando ALL

A continuación vamos a seleccionar todos los nombre de los productos.

SELECT ALL NombreProducto FROM SivProductos 

Vamos a proceder a ejecutar la consulta y mostrar el resultado

Al cumplir la condición los valores mostrados son todos los nombre de la tabla productos.

ahora veamos un ejemplo creando una subconsulta. Vamos a seleccionar todos los nombres de los productos cuyo cantidad sea igual a 10.

SELECT NombreProducto FROM SivProductos
WHERE ProductoID = ALL
(SELECT objProductoID FROM SfaVentasDetalles
WHERE Cantidadvendida = 10
)

A continuación vamos a ejecutar la consulta:


Si observamos no nos arroja ningún resultado esto debido a que la tabla detalle de ventas contiene muchos valores diferente en su campo cantidad por lo cual el resultado es Falso.

Hasta acá esta sección donde hemos hablado de los operadores lógicos ANY y ALL, esperando que sea de apoyo y contribución a sus conocimientos en el proceso de aprendizaje hasta la próxima. 


Publicar un comentario

0 Comentarios