書くことに違いはありますか:
select
...,
mySum= CASE
WHEN i IS NULL THEN 0 ELSE SUM(i)
END
...
対
select
...,
mySum= SUM( CASE WHEN i IS NULL THEN 0 ELSE i
END
)
...
それとも 100% 同じですか (論理的にトラップ... )?
書くことに違いはありますか:
select
...,
mySum= CASE
WHEN i IS NULL THEN 0 ELSE SUM(i)
END
...
対
select
...,
mySum= SUM( CASE WHEN i IS NULL THEN 0 ELSE i
END
)
...
それとも 100% 同じですか (論理的にトラップ... )?
私のテスト データでは、同じ結果が返され、ほぼ同じ実行計画が返されます。

すべて同じコストで、2 つの操作が逆になっただけです。
論理的には違いはないと思います。ただし、この場合、集約関数は null を無視するため、null をチェックする必要はないと思います
ところで、次のようcaseに aで簡略化できisnullます。(編集:誤って追加sum(isnull(i,0))され、変更されましたIsnull(sum(i),0))
select Col1, Isnull(sum(i),0) as mySum
from yourTable
group by Col1