Ändra ditt tillstånd till detta istället:
where (@LastName = 'All' and 1=1) or (LastName = @LastName)
Tanken är att när @LastName
='Alla' så bör din fråga inte ha några filter. Villkoret 1=1 kommer alltid att vara sant, och tillsammans med den andra kontrollen bör alla resultat returneras. Den andra sökvägen som frågan kan ta är att filtrera efter ett specifikt efternamn, vilket definitivt bör utesluta null-värden.
Uppdatering:villkoret 1=1 är överflödigt. Du kan skriva om villkoret som:
where (@LastName = 'All') or (LastName = @LastName)