Remplacez votre condition par celle-ci :
where (@LastName = 'All' and 1=1) or (LastName = @LastName)
L'idée est que lorsque @LastName
='All' alors votre requête ne devrait pas avoir de filtres. La condition 1=1 sera toujours vraie et, avec l'autre vérification, devrait renvoyer tous les résultats. L'autre chemin que la requête peut emprunter est le filtrage par un nom de famille spécifique, qui doit définitivement exclure les valeurs nulles.
Mise à jour :LA condition 1=1 est redondante. Vous pouvez réécrire la condition comme :
where (@LastName = 'All') or (LastName = @LastName)