Вы можете express, что логически c, используя ИЛИ
select name,age,department
from employee
where @selection <> 1 or age > 25
Если @selection <> 1, то первая часть условия гарантирует, что все строки будут возвращены, но если это точно 1, тогда вы проверите «age> 25»
Я бы добавил функцию isnull, чтобы гарантировать, что когда @selection содержит нулевое значение, он по-прежнему возвращает все строки.
select name,age,department
from employee
where isnull(@selection, 0) <> 1 or age > 25