Zamiast tego zmień swój stan na następujący:
where (@LastName = 'All' and 1=1) or (LastName = @LastName)
Chodzi o to, że kiedy @LastName
='All' to zapytanie nie powinno zawierać żadnych filtrów. Warunek 1=1 będzie zawsze spełniony i razem z innym sprawdzeniem powinien zwrócić wszystkie wyniki. Inną ścieżką, jaką może obrać zapytanie, jest filtrowanie według określonego nazwiska, co zdecydowanie powinno wykluczać wartości null.
Aktualizacja:Warunek 1=1 jest nadmiarowy. Możesz przepisać warunek jako:
where (@LastName = 'All') or (LastName = @LastName)