I have already received answers from some of my colleagues, but in case they do not send it here, I will add the answer myself.
Both of these examples assume that the predicate compares a column in the right table with a scalar value.
Performance
It seems that if the predicate is on a JOIN , then the "right" table is filtered in advance. If the predicate is part of the WHERE , then all results are returned and filtered once at the end, before returning the result set.
Returned data
if the predicate is part of the WHERE , then in the situation where the βcorrectβ value is null (ie there is no connection string), the whole string will not be returned in the final resultet, because the predicate will compare the value with null and therefore returns false
Neil barnwell
source share