Nee, er mag geen verschil zijn. EXISTS
springt eruit zodra het een enkele bijpassende rij heeft gevonden. Daarom heeft het altijd de voorkeur boven b.v. (select COUNT(*) from ...) > 0
- een COUNT
zou dwingen om alle rijen in overweging te nemen.
Als u de volgende vier zoekopdrachten maakt:
select * from sys.objects
select top 1 * from sys.objects
select 1 where exists(select * from sys.objects)
select 1 where exists(select top 1 * from sys.objects)
En als u uitvoeringsplannen inschakelt, zult u zien dat de tweede query een uitvoeringsplan genereert met een TOP
exploitant. De 3e en 4e zoekopdracht produceren identiek plannen. De TOP
wordt genegeerd.