Claúsula EXCEPT
Devuelve cualquier valor distinto del conjunto de datos a la izquierda del operador EXCEPT que no sea también devuelto desde el conjunto de datos correcto.
Ejemplos
Selecciona el conjunto de datos excepto cuando los valores estén en este otro conjunto de datos
SELECT 'Conjunto2 as 'Columna' UNION
ALL
SELECT 'Conjunto3' as 'Columna' UNION
ALL
SELECT 'Conjunto4' as 'Columna' UNION
ALL
SELECT 'Conjunto5' as 'Columna'
EXCEPT
SELECT ' Conjunto3' as 'Columna'
--Devuelve Conjunto1, Conjunto2, Conjunto4, y Conjunto5
Bloques de ejecución
Utilizando BEGIN ... END
BEGIN
UPDATE Empleados SET Numero_telefono
= '5551234567' WHERE Id = 1;
UPDATE Empleados SET Salario
= 650 WHERE Id = 3;
END
Cláusula EXISTS
Ejemplo
Tabla clientes
Id Nombre
Apellido
1 Mariano García
2 José Pérez
3 Antonia López
Tabla Pedidos
Id Cliente Id
Cantidad
1 2 123.50
2 3 14.80
Devuelve todos los clientes que han realizado al menos una compra
SELECT * FROM Clientes
WHERE EXISTS (
SELECT * FROM Pedido WHERE Pedidos_Cliente.IdCliente=Clientes.Id)
Resultadome
2 José Pérez
3 Antonia López
Obtener los clientes sin pedidos
SELECT * FROM Clientes
WHERE NOT EXISTS (
SELECT * FROM Pedidos WHERE Pedidos.IdCliente = Clientes.Id)
1 Mariano García
EXISTS debe usarse para verificar si existe un
valor en otra tabla
IN debe usarse para una lista estática
JOIN debe usarse para recuperar datos de
otra(s) tabla(s)