Обяснете планакод>
би ви показал защо точно трябва да използвате Exists . Обикновено въпросът идва Exists vs Count(*) . Съществува е по-бърз. Защо?
-
По отношение на предизвикателствата, представени от NULL:когато подзаявката връща
Null, за IN цялата заявка ставаNull. Така че трябва да се справите и с това. Но използвайкиExist, това е простоfalse. Много по-лесно за справяне. ПростоINне може да сравни нищо сNullноСъществуваможе. -
напр.
Съществува (Изберете * от вашата таблица, където bla ='blabla');получавате вярно/невярно в момента, едно попадение е намерено/съпоставено . -
В този случай
INвид заема позицията наCount(*)за да изберете ВСИЧКИ съвпадащи редове въз основа наWHEREзащото сравнява всички стойности.
Но не забравяйте и това:
СЪЩЕСТВУВАизпълнява се с висока скорост срещуIN:когато резултатите от подзаявката са много големи.INизпреварваEXISTS:когато резултатите от подзаявката са много малки.
Препратка към за повече подробности: