与えられた:
WHERE (@Id Is NULL OR @Id = Table.Id)
@Idがnullの場合:式はtrueと評価されます。2番目の部分@Id=Table.Idは引き続き考慮されますか?または、最初の部分が真であるとすると、式がtrueと評価されるだけで十分です(これはc#の場合です)。
これは、すべての部分が評価されているかどうかを知ることが重要な、はるかに複雑なORステートメントのために関連しています。
アップデート:
それ以来、この構文が良い代替手段であることがわかりました
WHERE (Table.Id = ISNULL(@Id, Table.Id))