Извините, если мой заголовок немного вводил в заблуждение, но я не совсем уверен, как его сформулировать.
Почему существует разница между двумя приведенными ниже утверждениями:
SELECT *
FROM tbl1 LEFT OUTER JOIN
tbl2 ON tbl1.num = tbl2.tbl1Num LEFT OUTER JOIN
tbl3 ON tbl2.num = tbl3.tbl2Num
WHERE tbl2.intNum = 123 OR 123 = -1
И
DECLARE @intNum int = 123
SELECT *
FROM tbl1 LEFT OUTER JOIN
tbl2 ON tbl1.num = tbl2.tbl1Num LEFT OUTER JOIN
tbl3 ON tbl2.num = tbl3.tbl2Num
WHERE tbl2.intNum = @intNum OR @intNum = -1
Мы запустили два вышеупомянутых запроса, и это фактически дало нам разные результаты? Мы решили сменить его на Союз, чтобы решить эту проблему, но мне бы очень хотелось понять, почему это произошло.
Заранее спасибо!