TOP

Declaración SQL EXISTS

SQL EXISTS descripción

El operador EXISTS se utiliza para comprobar la existencia de cualquier registro en la subconsulta.

El operador EXISTS devuelve TRUE si la subconsulta devuelve uno o más registros.


EXISTS Sintaxis

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition)

Base de datos de demostración

El siguiente es un ejemplo de la tabla "Products" ("Productos") de la base de datos Northwind:

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18.00
2Chang1124 - 12 oz bottles19.00
3Aniseed Syrup1212 - 550 ml bottles10.00
4Chef Anton's Cajun Seasoning2248 - 6 oz jars22.00
5Chef Anton's Gumbo Mix2236 boxes21.35

Y el ejemplo de la tabla "Suppliers" ("Proveedores"):

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountryPhone
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonaEC1 4SDUK(171) 555-2222
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA(100) 555-4822
3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA(313) 555-5735
4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan(03) 3555-5011
5Cooperativa de Quesos 'Las Cabras'Antonio del Valle SaavedraCalle del Rosal 4Oviedo33007Spain(98) 598 76 54

SQL EXISTS Ejemplos

La siguiente consulta SQL devuelve TRUE y contiene una lista de proveedores con un precio de producto inferior a 20:

Run SQLSELECT SupplierName 
FROM Suppliers 
WHERE EXISTS (SELECT ProductName 
              FROM Products 
              WHERE Products.SupplierID = Suppliers.supplierID 
                AND Price < 20)

Otra declaración SQL devuelve TRUE y contiene una lista de proveedores con un precio de producto igual a 22:

Run SQLSELECT SupplierName 
FROM Suppliers 
WHERE EXISTS (SELECT ProductName 
              FROM Products 
              WHERE Products.SupplierID = Suppliers.supplierID 
                AND Price = 22)