Дано:
WHERE (@Id Is NULL OR @Id = Table.Id)
Если @Id равно нулю: выражение истинно. Учитывается ли вторая часть @Id = Table.Id? или достаточно, чтобы выражение было истинным при условии, что это первая часть (как в C #).
Это актуально из-за некоторых гораздо более сложных операторов ИЛИ, в которых важно знать, все ли части оцениваются.
ОБНОВЛЕНИЕ:
С тех пор я нашел этот синтаксис хорошей альтернативой
WHERE (Table.Id = ISNULL(@Id, Table.Id))