Unidad V : Consultas Complejas (IN, NOT IN, =ANY)

SENTENCIAS IN, NOT IN, =ANY, >ANY, <ANY, <=ANY, <=ANY y <>ANY

En SQL la palabra IN se usa en el WHERE, permite localizar uno o varios valores a los que conduzca la siguiente consulta. Su sintaxis es la siguiente


SELECT Nombre de Atributo

FROM Nombre de tabla

WHERE Nombre de Atributo IN (SELECT Nombre de Atributo

FROM Nombre de Tabla

WHERE condición);


Los siguientes select pueden ser varios, pero todos anidados debidamente y contenidos entre paréntesis. Por ejemplo, quisiéramos seleccionar información relacionada con negocios de Los Angeles y San Diego, en la tabla TIENDAS


TIENDAS

NOMBRE

VENTAS

FECHA

Los Angeles

1500

Enero 2009

San Diego

250

Febrero 2010

San Francisco

300

Enero 2010

Boston

700

Marzo 2011

California

850

Abril 2011


VENDEDORES

NOMBRE

NOMVENDEDOR

RENDIMIENTO

Los Angeles

Jesús Escalona

200

Los Angeles

Raúl Galíndez

800

Los Angeles

María Peña

500

San Diego

Carlos Mujica

250

Boston

Benito Maduro

400

Boston

Cecilia Barrios

300

San Francisco

Rosa Carrero

300


Ingresamos


SELECT *

FROM VENDEDORES

WHERE NOMBRE IN (SELECT NOMBRE

FROM TIENDAS

WHERE NOMBRE = ‘Los Angeles’ or NOMBRE=’San Diego’);


            La palabra clave ANY, debe seguir a un operador de comparación (=,<,>,<=,>=,<>), significa que retorna un valor TRUE si la comparación es verdadera para ANY (cualquiera) de los valores en el atributo que retorna la siguiente consulta. Por ejemplo:


SELECT NOMVENDEDOR

FROM  VENDEDORES

WHERE NOMBRE =ANY(SELECT NOMBRE

FROM TIENDAS

WHERE MONTO >500);


            La palabra IN es un alias para =ANY, por lo tanto, estos dos comandos son lo mismo:


SELECT NOMVENDEDOR

FROM VENDEDORES

WHERE NOMBRE IN(SELECT NOMBRE

FROM TIENDAS

WHERE MONTO>500);


            El ANY es útil cuando el comparador es diferente a =; más adelante se verá cuando es necesario usarlo.           

            La expresión NOT IN, permite expresa la operación de la teoría de conjuntos sobre el MENOS, o la no existencia de alguna información, en el anidamiento de tablas, por ejemplo si quisiéramos saber que tienda no posee vendedores, expresaríamos:


SELECT NOMBRE

FROM TIENDAS

WHERE NOMBRE NOT IN(SELECT NOMBRE

FROM VENDEDORES);


Comentarios

Entradas populares de este blog

Unidad X : UPDATE - DELETE

Unidad VII : USO DEL AS, UPPER Y LOWER