Вместо това променете вашето условие на това:
where (@LastName = 'All' and 1=1) or (LastName = @LastName)
Идеята е, че когато @LastName
='Всички', тогава вашата заявка не трябва да има никакви филтри. Условието 1=1 винаги ще бъде вярно и заедно с другата проверка трябва да върне всички резултати. Другият път, по който може да поеме заявката, е филтриране по конкретно фамилно име, което определено трябва да изключва нулеви стойности.
Актуализация:Условието 1=1 е излишно. Можете да пренапишете условието като:
where (@LastName = 'All') or (LastName = @LastName)