sammanfattning: i den här handledningen lär du dig hur du använder SQL ServerEXISTS
– operatören i villkoret för att testa förekomsten av rader i en underquery.
SQL Server finns operatörsöversikt
EXISTS
operatören är en logisk operatör som låter dig kontrollera om en underquery returnerar någon rad. OperatörenEXISTS
returnerarTRUE
om subquery returnerar en eller flera rader.,
följande visar syntaxen för SQL Server EXISTS
operator:
Code language: SQL (Structured Query Language) (sql)
i denna syntax är subquery endast en SELECT
– sats. Så snart subquery returnerar rader returnerar EXISTS
– operatören TRUE
och slutar behandla omedelbart.
Observera att även om subquery returnerar en NULL
värde, EXISTS
operatören fortfarande utvärderas till TRUE
.,
SQL Server finns operatörsexempel
låt oss ta några exempel för att förstå hur EXISTS
operator fungerar.
A) användning finns med en underquery returnerar NULL exempel
se följandecustomers
tabell från exempeldatabasen.,
följande exempel returnerar alla rader från tabellen customers
:
i det här exemplet returnerade subquery en resultatuppsättning som innehåller NULL
vilket gör att EXISTS
– operatören utvärderar till TRUE
. Därför returnerar hela frågan alla rader från tabellencustomers
.,
B) användning finns med ett korrelerat subquery exempel
överväga följandecustomers
ochorders
tabeller:
följande exempel hittar alla kunder som har lagt fler än två beställningar:
i det här exemplet hade vi en korrelerad underquery som returnerar kunder som lägger fler än två beställningar.,
om antalet beställningar som görs av kunden är mindre än eller lika med två returnerar subquery en tom resultatuppsättning som gör attEXISTS
– operatören utvärderar tillFALSE
.
baserat på resultatet avEXISTS
– operatören kommer kunden att inkluderas i resultatuppsättningen.
C) FINNS vs., I exempel
följande uttalande använder IN
– operatören för att hitta order från kunder från San Jose:
följande uttalande använder EXISTS
– operatören som returnerar samma resultat:
finns vs. join
EXISTS
operator returnerar TRUE
eller FALSE
medan JOIN
– klausulen returnerar rader från en annan tabell.,
du använderEXISTS
– operatören för att testa om en underquery returnerar någon rad och kortslutning så snart den gör det. Å andra sidan använder du JOIN
för att utöka resultatuppsättningen genom att kombinera den med kolumnerna från relaterade tabeller.
i praktiken använder du EXISTS
när du bara behöver kontrollera förekomsten av rader från relaterade tabeller utan att returnera data från dem.
i den här handledningen har du lärt dig hur du använder SQL ServerEXISTS
– operatören för att testa om en underquery returnerar rader.