SQL EXISTS | |
|
SQL >
Geavanceerde SQL >
Exists
In het vorig deel werd IN gebruikt om de inner en de outer query in een subquery-instructie te verbinden. IN is niet de enige mogelijke manier -- er kunnen veel operatoren worden gebruikt, zoals >, <, ou =. EXISTS is een speciale operator die in dit deel wordt uiteengezet. EXISTS test of de inner query een rij retourneert. Als dit zo is, dan gaat de outer query verder. Als dit niet het geval is, wordt de outer query niet uitgevoerd en retourneert de volledige SQL-instructie niets. De syntaxis voor EXISTS is: SELECT "kolom_naam1"
FROM "tabel_naam1" WHERE EXISTS (SELECT * FROM "tabel_naam2" WHERE "Voorwaarde"); Bemerk dat u in plaats van * één of meer kolommen kunt selecteren in de inner query. Het resultaat zal hetzelfde zijn. Neem de volgende voorbeeldtabellen: Tabel Store_Information
Tabel Geography
en schrijf de volgende SQL-query: SELECT SUM(Sales) FROM Store_Information
WHERE EXISTS (SELECT * FROM Geography WHERE Region_Name = 'West'); dan krijgt u het volgend resultaat:
Dit kan eerst verwarrend lijken omdat de subquery de voorwaarde [region_name = 'West'] bevat, en de query toch winkels voor alle regio's optelt. Bij nader inzien ziet u dat vermits de subquery meer dan 0 rijen retourneert, de voorwaarde EXISTS waar is en de voorwaarde binnen de inner query geen invloed heeft op de uitvoering van de outer query.
Copyright © 2024 1keydata.com Alle rechten voorbehouden |