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
Table Geography
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:
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.
|