This is possible & does not require dynamic SQL.
Re-order your query parameters as per below
select e.empId,e.empName,e.Salary,e.Dateofbirth,c.country,d.departmentName from Employee e
join Department d
on e.departmentId=d.departmentId
join Country c
on e.countryId=c.countryId
where
(@EmployeeName IS NULL OR (e.empName Like '%'+@EmployeeName+'%'))
and
(@Country IS NULL OR (c.country Like '%'+@Country+'%')
and
(@Department IS NULL OR (d.departmentName like '%'+@Department+'%')
and
(@SalaryStart IS NULL OR (e.Salary>@SalaryStart))
and
(@SalaryEnd IS NULL OR (e.Salary<@SalaryEnd))
With specific datatypes you may find this returns unexpected results. In these cases I typically use an alternate value, such as -1 for INT, empty string for varchar etc.
Kind Regards