Generally speaking it makes no semantic difference.
There is one edge case where it can do though. If the (deprecated) GROUP BY ALL
construct is added to the query as illustrated below.
DECLARE @A TABLE(A_ID INT, DURATION DECIMAL(3,2) )
INSERT INTO @A VALUES(1,2.00)
DECLARE @B TABLE(A_ID INT)
INSERT INTO @B VALUES(1)
/*Returns one row*/
SELECT *
FROM @A A
INNER JOIN @B B ON A.A_ID = B.A_ID
WHERE A.DURATION = 3.00
GROUP BY ALL A.A_ID, A.DURATION, B.A_ID
/*Returns zero rows*/
SELECT *
FROM @A A
INNER JOIN @B B ON A.A_ID = B.A_ID AND A.DURATION = 3.00
GROUP BY ALL A.A_ID, A.DURATION, B.A_ID
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…