SQL EXISTS




SQL > SQL Avanzado > Exists

En la sección anterior, utilizamos IN para enlazar la consulta interna y la consulta externa en una instrucción de subconsulta. IN no es la única forma de hacerlo – uno puede utilizar muchos operadores tales como >, <, o =. EXISTS es un operador especial que describiremos en esta sección.

EXISTS simplemente verifica si la consulta interna arroja alguna fila. Si lo hace, entonces la consulta externa procede. De no hacerlo, la consulta externa no se ejecuta, y la totalidad de la instrucción SQL no arroja nada.

La sintaxis para EXISTS es

SELECT "nombre1_columna"
FROM "nombre1_tabla"
WHERE EXISTS
(SELECT *
FROM "nombre2_tabla"
WHERE "Condición");

Por favor note que en vez de *, puede seleccionar una o más columnas en la consulta interna. El efecto será idéntico.

Utilizamos las mismas tablas de ejemplos:

Tabla Store_Information
Store_NameSalesTxn_Date
Los Angeles150005-Jan-1999
San Diego25007-Jan-1999
Los Angeles30008-Jan-1999
Boston70008-Jan-1999

Table Geography
Region_NameStore_Name
EastBoston
EastNew York
WestLos Angeles
WestSan Diego

colocaríamos la siguiente consulta SQL:

SELECT SUM(Sales) FROM Store_Information
WHERE EXISTS
(SELECT * FROM Geography
WHERE region_name = 'West');

Obtendremos el siguiente resultado:

SUM(Sales)
2750

Al principio, esto puede parecer confuso, debido a que la subsequencia incluye la condición [Region_Name = 'West'], aún así la consulta sumó los negocios para todas las regiones. Si observamos de cerca, encontramos que debido a que la subconsulta arroja más de 0 filas, la condición EXISTS es verdadera, y la condición colocada dentro de la consulta interna no influencia la forma en que se ejecuta la consulta externa.

SQL CASE >>



Copyright © 2017   1keydata.com   Todos los derechos reservados.