Если вы создаете SQL-код в коде C #, просто поместите условие if в логику C #, чтобы не включать предложение WHERE в экземпляр, для которого вы хотите вернуть все записи. Это создаст другой оператор SQL, поэтому все будет в порядке с точки зрения производительности / выполнения.
Если вы собираетесь использовать sproc, вы можете попробовать этот подход:
IF (@Field2 = 'SomeWildcardValue')
SELECT Field1, Field2, Field3 FROM SomeTable
ELSE
SELECT Field1, Field2, Field3 FROM SomeTable WHERE Field2 = @Field2
Или даже оставьте их полностью раздельными, создайте один sproc для возврата ALL и один для возврата на основе поиска в Field2. Хотя, если у вас есть большее количество параметров, это может скоро смениться!