Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
SQL Server: la condición existe
Este tutorial de SQL Server describe cómo usar Condición de existencia Sintaxis y ejemplos en SQL Server (Transact-SQL).
La condición EXISTS de SQL Server (Transact-SQL) se usa junto con una subconsulta y se considera satisfecha si la subconsulta devuelve al menos una fila. Se puede usar en declaraciones SELECT, INSERT, UPDATE o DELETE.
sintaxis
La sintaxis de la condición EXISTS en SQL Server (Transact-SQL) es:
WHERE EXISTS ( subquery );
parámetro o parámetro
Subconsultas Una subconsulta es una instrucción SELECT. Si la subconsulta devuelve al menos un registro en su conjunto de resultados, la cláusula EXISTS se evaluará como verdadera y se cumplirá la condición EXISTS. Si la subconsulta no devuelve registros, la cláusula EXISTS se evalúa como falsa y no se cumple la condición EXISTS.
notas
- Las instrucciones SQL que usan condiciones EXISTS son muy ineficientes porque la subconsulta se vuelve a ejecutar para cada fila en la tabla de consulta externa. Hay formas más eficientes de escribir la mayoría de las consultas que no usan condiciones EXISTS.
Ejemplo: uso de la instrucción SELECT
Veamos un ejemplo sencillo.
La siguiente es una declaración SELECT que usa la condición EXISTS:
SELECT * FROM employees WHERE EXISTS (SELECT * FROM contacts WHERE employees.last_name = contacts.last_name AND employees.first_name = contacts.first_name);
Este ejemplo de condición de SQL Server EXISTS devuelve todos los registros en la tabla de empleados donde al menos un registro en la tabla de contactos tiene un apellido y un nombre coincidentes.
Ejemplo: declaración SELECT usando NOT EXISTS
Las condiciones de SQL Server EXISTS también se pueden combinar con el operador NOT.
Por ejemplo,
SELECT * FROM employees WHERE NOT EXISTS (SELECT * FROM contacts WHERE employees.last_name = contacts.last_name AND employees.first_name = contacts.first_name);
Este ejemplo de SQL Server EXISTE devolverá todos los registros en la tabla de empleados No Un registro en la tabla de contactos que coincida con last_name y first_name.
Ejemplo: uso de la instrucción INSERT
El siguiente es un ejemplo de una declaración INSERT usando una condición EXISTS:
INSERT INTO contacts (contact_id, contact_name) SELECT supplier_id, supplier_name FROM suppliers WHERE EXISTS (SELECT * FROM orders WHERE suppliers.supplier_id = orders.supplier_id);
Ejemplo: uso de la instrucción UPDATE
El siguiente es un ejemplo de una instrucción UPDATE que usa la condición EXISTS:
UPDATE suppliers SET supplier_name = (SELECT customers.name FROM customers WHERE customers.customer_id = suppliers.supplier_id) WHERE EXISTS (SELECT customers.name FROM customers WHERE customers.customer_id = suppliers.supplier_id);
Ejemplo: uso de la sentencia DELETE
El siguiente es un ejemplo de una instrucción DELETE que usa la condición EXISTS:
DELETE FROM contacts WHERE EXISTS (SELECT * FROM employees WHERE employees.last_name = contacts.last_name);