Změňte svou podmínku na tuto:
where (@LastName = 'All' and 1=1) or (LastName = @LastName)
Myšlenka je taková, že když @LastName
='Vše', pak by váš dotaz neměl mít žádné filtry. Podmínka 1=1 bude vždy pravdivá a společně s druhou kontrolou by měla vrátit všechny výsledky. Další cestou, kterou se dotaz může ubírat, je filtrování podle konkrétního příjmení, které by rozhodně mělo vyloučit hodnoty null.
Aktualizace:Podmínka 1=1 je nadbytečná. Podmínku můžete přepsat jako:
where (@LastName = 'All') or (LastName = @LastName)